用于将文件内容检查为条件语句的命令

时间:2016-06-15 15:48:18

标签: bash shell

我正在寻找一个命令,它将检查文件的内容,如果找到了内容,我将不会再次写入,如果找不到,则会写入相同的内容。

例如:

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

我的问题是,如果不使用循环,我可以获得一些命令来执行此操作吗?

1 个答案:

答案 0 :(得分:4)

使用awk很简单:

awk '!seen[$1]++' file

test1 1.0.0.0
test2 1.0.0.0

此awk命令使用关联数组seen,密钥为$1。对于每一行,它将检查$1中是否有seen可用。如果是,则打印行,否则$1条目的值增加1