필드가 5개 미만인 파일에서 줄을 삭제하는 방법

필드가 5개 미만인 파일에서 줄을 삭제하는 방법

파일이 있습니다(아래 예). 일부 행에는 5개의 필드가 있으며, 5번째 필드는 숫자입니다. 그러나 파일의 몇 줄에는 필드가 4개만 있습니다.

4개 필드의 내용만 포함된 행을 어떻게 삭제할 수 있나요? 열별로 정렬되지 않습니다.

delay  from  threshold/temp/atp/CK   rx/tx/sx/C14/CLR/DQ  5.0
delay  from  threshold2   rx/C10/CLR  7.0
delay  to    threshold10  rx10  3.0
delay  from  min/max/values/atp  tx/rx/mx/T13/CLR
delay  to  min5/atp2  tx/mx/P11/CTR

위의 예에서는 네 번째와 다섯 번째 행을 삭제하고 싶습니다.

나는 시도했지만 awk -F\| '$5~/\w/' file도움이 되지 않았습니다.

답변1

awk '$5~/\w/'나를 위해 작동합니다. \w다섯 번째 열이 정규식 aka 와 일치하는 모든 줄을 인쇄합니다 [a-zA-Z0-9_]. 이 옵션을 사용하여 -F올바른 구분 기호를 지정했는지 확인하십시오.

awk 'NF>4'당신의 의도를 더 명확하게 표현하십시오. 4개 이상의 필드가 있는 모든 줄을 인쇄합니다.

관련 정보