":" 뒤에 문자가 4자 미만인 경우 전체 줄을 삭제합니다.

":" 뒤에 문자가 4자 미만인 경우 전체 줄을 삭제합니다.

예를 들어 다음과 같이 많은 줄이 포함된 파일이 있습니다.

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

관련 정보