我有两个文件,我想显示重复的行.我试过这个,但它不起作用:
cat id1.txt | while read id; do grep "$id" id2.txt; done
我想知道是否有任何其他方式来显示文件中的重复行.我的两个文件都包含id列表.谢谢.
Jon*_*ler 13
文件是否已排序?它们可以分类吗?
如果排序:
comm -12 id1.txt id2.txt
Run Code Online (Sandbox Code Playgroud)
如果没有排序但使用bash4.x:
comm -12 <(sort id1.txt) <(sort id2.txt)
Run Code Online (Sandbox Code Playgroud)
如果您没有bash4.x和'进程替换',则有使用临时文件的解决方案.
你也可以使用grep -F:
grep -F -f id1.txt id2.txt
Run Code Online (Sandbox Code Playgroud)
这会查找id1.txt出现的单词id2.txt.这里唯一的问题是确保ID 1与包含1某个地方的每个ID不匹配.某些版本中可用的-w或-x选项可在grep此处使用.
kam*_*uel 10
如果通过检测重复,则表示两个文件中存在的打印行(或在一个文件中重复),您可以使用uniq:
$ cat file1 file2 | sort | uniq -d
Run Code Online (Sandbox Code Playgroud)