파일이 있습니다(아래 예). 일부 행에는 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개 이상의 필드가 있는 모든 줄을 인쇄합니다.