#
줄이 또는 로 시작 하지 않는 한 4자 미만의 줄을 자르고 싶습니다 !
.
입력 예:
aa
bbb
dasasdsad
! f
#
!
# s
a
&B@*!
산출:
dasasdsad
! f
#
!
# s
&B@*!
답변1
그리고 grep
:
< file.in grep -E '^[#!]|.{4}' > file.out
즉 #
, 또는으로 시작 !
하거나 일련의 4개 문자를 포함하는 행을 선택하십시오.
또는 다음을 사용하여 awk
:
< file.in awk '/^[#!]/ || length >= 4' > file.out
또는 다음을 사용하여 sed
:
< file.in sed -e '/^[#!]/b' -e '/.\{4\}/!d' > file.out
답변2
다음과 같은 것을 시도해 볼 수 있습니다. 코드는 테스트되지 않았습니다.
while read line;
do
var=$(echo $line | awk '{ print length }')
if [ $var -le 4 ]; then
echo $line >> tmp.file
fi
done < your.file
이는 2단계 프로세스로, 읽을 때 tmp.file에 4자 미만의 줄을 씁니다. comm -23 your.file tmp.file
두 파일을 비교하여 공통 라인을 억제한 것이 > you.new.file
최종 저장된 버전입니다.