我正在寻找一个命令,它将检查文件的内容,如果找到了内容,我将不会再次写入,如果找不到,则会写入相同的内容。
例如:
cat sample1.txt
test1 1.0.0.0
test2 1.0.0.0
test1 2.0.0.0
在这三个条目中,我只想将第一个唯一条目写入输出文件。我的输出文件应该是
cat sample_op.txt
test1 1.0.0.0
test2 1.0.0.0
我的问题是,如果不使用循环,我可以获得一些命令来执行此操作吗?
答案 0 :(得分:4)
使用awk很简单:
awk '!seen[$1]++' file
test1 1.0.0.0
test2 1.0.0.0
此awk命令使用关联数组seen
,密钥为$1
。对于每一行,它将检查$1
中是否有seen
可用。如果是,则打印行,否则$1
条目的值增加1
。