특정 숫자 값이 있는 행 삭제

특정 숫자 값이 있는 행 삭제

다음과 같은 파일이 있습니다.

AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  111 B   2   ..  BB  3   ... BBB 0   F   F   0   F   F
AA  112 C   2   ..  BB  3   ... BBB 0   D   F   0   D   F
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

특정 값 0이 포함된 행을 삭제하고 싶습니다. 내가 이렇게 하면:

sed '/0/d' infile > newfile

그런 다음 행 1과 4는 110과 120에 "0"이 포함되어 있으므로 삭제됩니다. 나는 grep grep -v '0' infile > newfile이나 awk의 다른 옵션을 시도했지만 성공하지 못했습니다.

이 작업을 수행하는 쉬운 방법이 있다고 확신하지만 찾을 수 없습니다. 어떤 아이디어가 있나요?

감사해요!

답변1

전체 단어와 일치하도록 -w추가 :grep

$ grep -vw 0 infile 
AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

답변2

노력하다단어 경계 앵커

sed '/\b0\b/d' file
AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

답변3

탭 구분 기호 업데이트

sed '/\t0\t/d' infile > newfile

그러나 이것이 더 안전합니다.

sed '/\b0\b/d' infile > newfile

관련 정보