Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在两个不同的文件中显示重复的行_Linux_Bash - Fatal编程技术网

Linux 在两个不同的文件中显示重复的行

Linux 在两个不同的文件中显示重复的行,linux,bash,Linux,Bash,我有两个文件,我想显示重复行。我试过这个,但不起作用: cat id1.txt |读取id时;dogrep“$id”id2.txt;完成 我想知道是否有其他方法可以显示文件中的重复行。 我的两个文件都包含ID列表。 谢谢。文件排序了吗?它们能分类吗 如果已排序: comm -12 id1.txt id2.txt 如果未排序,但使用bash4.x: comm -12 <(sort id1.txt) <(sort id2.txt) 这将查找出现在id2.txt中的id1.txt中的单

我有两个文件,我想显示重复行。我试过这个,但不起作用:

cat id1.txt |读取id时;dogrep“$id”id2.txt;完成

我想知道是否有其他方法可以显示文件中的重复行。 我的两个文件都包含ID列表。
谢谢。

文件排序了吗?它们能分类吗

如果已排序:

comm -12 id1.txt id2.txt
如果未排序,但使用
bash
4.x:

comm -12 <(sort id1.txt) <(sort id2.txt)

这将查找出现在
id2.txt
中的
id1.txt
中的单词。这里唯一的问题是确保ID
1
与包含
1
的每个ID不匹配。某些版本的中可用的
-w
-x
选项将在此处工作。

您可以使用
comm
命令:

sort id1.txt > id1.txt.sorted
sort id2.txt > id2.txt.sorted
comm -12 id1.txt.sorted id2.txt.sorted
如果要在一个命令中执行此操作:

comm -12 <(sort id1.txt) <(sort id2.txt)

comm-12如果通过检测重复,您指的是两个文件中存在的打印行(或一个文件中的重复行),则可以使用
uniq

$ cat file1 file2 | sort | uniq -d

使用awk将节省您的时间

awk 'FNR==NR{lines[$0]=1;next} $0 in lines' id1.txt id2.txt

按ID复制还是按整行复制?添加一些示例数据会有所帮助。任何一种方法都有效。如果你知道两种方法都很好。谢谢
awk 'FNR==NR{lines[$0]=1;next} $0 in lines' id1.txt id2.txt