排序2个文件并对它们应用命令

时间:2011-10-08 10:43:39

标签: bash shell

我想从2个未分类的文件(比如file1和file2)中找到非唯一的行。我必须为它运行3个命令。

sort file1> file1_sort
sort file2> file2_sort
comm -3 file1_sort file2_sort

我可以在不制作临时文件和单一命令的情况下完成吗?

谢谢,

4 个答案:

答案 0 :(得分:4)

comm -3 <(sort file1) <(sort file2)

答案 1 :(得分:1)

您的说明与您拥有的命令不符。你说你想要非唯一的行,但是comm -3会删除非唯一的行。

sort file1 file2 | uniq -d
sort file1 file2 | uniq -u

第一行为您提供非唯一行(即file1和file2中的行)。第二行为您提供了唯一的行(即仅出现在file1或file2中但不同时出现在两者中的行)。

答案 2 :(得分:0)

如果您对非独特线感兴趣,请尝试:

cat file1 file2 | sort | uniq -c | sort -n

答案 3 :(得分:0)

你根本不需要排序。

awk 'NR==FNR{a[$0]=1}NR>FNR{if($0 in a)print $0}' file1 file2 > result.file