我的输入文件内容是:
Header1 Header2
a 2
a 7
b 2
b 5
c 4
c 0
c 5
Run Code Online (Sandbox Code Playgroud)
现在,只有当任何重复项的值为零(在 B 列中)时,我才想删除 A 列中的重复项。所以,对于上面的例子,输出应该是:
Header1 Header2
a 2
a 7
b 2
b 5
Run Code Online (Sandbox Code Playgroud)
我已经使用 awk 在第二列中找到 0:
awk '$2 != 0' file
Run Code Online (Sandbox Code Playgroud)
但它打印
Header1 Header2
a 2
a 7
b 2
b 5
c 4
c 5
Run Code Online (Sandbox Code Playgroud)
如果一个(或多个)值为零,我如何省略打印重复项?谢谢!
你可以使用这个awk:
awk 'FNR == NR{ if($2 == 0) skip[$1]; next } !($1 in skip)' file file
Run Code Online (Sandbox Code Playgroud)
Header1 Header2
a 2
a 7
b 2
b 5
Run Code Online (Sandbox Code Playgroud)