예를 들어 다음과 같이 많은 줄이 포함된 파일이 있습니다.
blue:fish
red:tomato
black:moon
":" 뒤에 문자가 4개 미만이면 줄 전체를 삭제하고 싶습니다.
답변1
당신은 그것을 사용할 수 있습니다sed
:
sed -r -e '/:.{0,3}$/d' data
-r
확장 정규식을 사용합니다(의 경우 {}
). 이 sed
표현식은 콜론 뒤에 0~3개의 문자를 사용한 다음 모든 줄과 일치하는 줄의 끝을 d
삭제합니다. 다른 모든 내용은 인쇄됩니다.
답변2
이 AWK 명령은 :
두 번째 필드가 최소 4자(4자 이상)인 줄을 분할하고 인쇄합니다. 가정: :
항상 존재하며 두 번 이상 나타나지 않습니다.
awk -F : "length($2) >= 4"
여러 번 발생하는 경우 마지막 열을 참조하는 $NF
대신 사용할 수 있습니다 .$2
답변3
이를 수행하는 방법에는 여러 가지가 있습니다.
다음은 하나입니다 perl
.
$ perl -ne 'print unless /:.{0,3}$/' file
blue:fish
red:tomato
black:moon
답변4
사용 grep
:
grep -E ':.{4,}$' file
grep
+ (moreutils에서)를 사용하여 sponge
"제자리에서" 파일을 "편집"합니다.
grep -E ':.{4,}$' file|sponge file