我的文件 test.txt 类似于:
aa:bbbbbb:22.3
a:bb:33.2
a:bbbb:22.3
aaaa:bb:39.9
我知道如何对它们进行计数和排序:
awk -F ':' '{print $2}' test.txt | awk '{print length($0),$0}' | sort -nr
现在我想从文件中删除第1行和第3行,因为这些行中第二个字段(包含“b”)的长度大于3.我怎么能用awk / sed做到这一点?感谢。
答案 0 :(得分:5)
使用awk
:
这将输出第二个字段> 3:
的行$ awk -F: 'length($2)>3' file
aa:bbbbbb:22.3
a:bbbb:22.3
反过来说:
$ awk -F: 'length($2)<=3' file
a:bb:33.2
aaaa:bb:39.9
答案 1 :(得分:4)