我有一个文件(下面的示例)。有些行有五个字段,其中第五个字段是数字。但文件中的几行只有四个字段。
我们怎样才能用只有四个字段的内容删除这些行呢?它们不按列对齐。
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 的所有行。