我有类似的文件test.txt:
aa:bbbbbb:22.3
a:bb:33.2
a:bbbb:22.3
aaaa:bb:39.9
Run Code Online (Sandbox Code Playgroud)
我知道如何计算和排序它们:
awk -F ':' '{print $2}' test.txt | awk '{print length($0),$0}' | sort -nr
Run Code Online (Sandbox Code Playgroud)
现在我想从文件中删除第1行和第3行,因为这些行中第二个字段(包含"b")的长度大于3.如何使用awk/sed执行此操作?谢谢.
用awk:
这将输出第二个字段> 3的行:
$ awk -F: 'length($2)>3' file
aa:bbbbbb:22.3
a:bbbb:22.3
Run Code Online (Sandbox Code Playgroud)
做相反的事情:
$ awk -F: 'length($2)<=3' file
a:bb:33.2
aaaa:bb:39.9
Run Code Online (Sandbox Code Playgroud)