Bash 对2个文件进行排序并对其应用命令

Bash 对2个文件进行排序并对其应用命令,bash,shell,Bash,Shell,我想从2个未排序的文件(比如file1和file2)中查找非唯一的行。我必须为它运行3个命令 排序文件1>file1\u排序 排序文件2>file2\u排序 通信-3文件1\u排序文件2\u排序 我可以不制作临时文件,在一个命令中完成吗 谢谢,comm-3如果您对非唯一线路感兴趣,请尝试以下方法: comm -3 <(sort file1) <(sort file2) cat file1 file2 | sort | uniq -c | sort -n 您的描述与您拥有的命令不匹

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

排序文件1>file1\u排序
排序文件2>file2\u排序
通信-3文件1\u排序文件2\u排序

我可以不制作临时文件,在一个命令中完成吗


谢谢,

comm-3如果您对非唯一线路感兴趣,请尝试以下方法:

comm -3 <(sort file1) <(sort file2)
cat file1 file2 | sort | uniq -c | sort -n

您的描述与您拥有的命令不匹配。你说你想要非唯一的行,但是有
comm-3
删除非唯一的行

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

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

您根本不需要排序

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

+1.值得注意的是,工艺替代不是标准的(并非在所有Bourne型外壳中都可用)。