我找到了我问题的部分答案,但我想不出其余的答案。我在用锥子。我可以使用以下命令删除原始行和复制行:

awk 'NR==FNR{a[$0]++;next} a[$0]<2' infile infile

但是,这需要复制整行。有人知道在按列1匹配时如何删除原始行和重复行吗?
我试过这个
awk 'key[$1]; NR==FNR{a[$0]++;next} a[$0]<2' infile infile

但那没能让我找到任何地方。我有一个包含以下类型数据的文件:
SRV13108 F15001:/出口/机架131/SRV13108
SRV13407 F15001:/出口/机架134/SRV13407
SRV13501 F13901:/出口/货架135/SRV13501
SRV13501 F14001:/出口/货架135/SRV13501
SRV13609 F14901:/出口/货架136/SRV13609
SRV14407 F14101:/出口/货架144/SRV14407
我希望输出是:
SRV13108 F15001:/出口/机架131/SRV13108
SRV13407 F15001:/出口/机架134/SRV13407
SRV13609 F14901:/出口/货架136/SRV13609
SRV14407 F14101:/出口/货架144/SRV14407
因为这两行有一个匹配的列1。

最佳答案

你在班轮上需要awk吗?

awk '{a[$1]=$0;u[$1]++}END{for(i in u)if(u[i]==1)print a[i]}'  file

给予:
srv13609 f14901:/export/rack136/srv13609
srv13108 f15001:/export/rack131/srv13108
srv13407 f15001:/export/rack134/srv13407
srv14407 f14101:/export/rack144/srv14407

关于linux - 使用awk按列匹配时如何删除原始行和重复行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14409373/

10-09 08:10