我想重定向重复到另一个文件,不使用排序命令



我想在不使用排序命令的情况下将重复项重定向到另一个文件。

我试着使用下面的命令,但它不工作。

uniq -d sample.txt

它只在我给它作为"sort sample.txt | uniq -d"时起作用,但是我想在不排序文件的情况下取出文件的重复项。还有别的办法吗?

您可以使用这个简单的awk命令来完成:

awk 'a[$0]{print;next}{a[$0]=1}' sample.txt

这里,$0 =>当前正在处理的整行。如果a[$0]已经设置,打印行(这是一个重复行)并继续next行。如果设置了Else a[$0],那么下次同样的行(如果存在的话)将被视为重复的。

例子:

AMD$ cat sample.txt
Line 1
Line 2
Line 3
Line 1
Line 4
Line 5
Line 2
Line 6
Line 7
Line 7
Line 8
Line 3
Line 9
Line 10
AMD$ awk 'a[$0]{print;next}{a[$0]=1}' sample.txt
Line 1
Line 2
Line 7
Line 3

相关内容

  • 没有找到相关文章

最新更新