我有两个制表符分隔文件,包含一个ID列,然后是20个左右的变量。我想找到这两个文件中存在的ID。我要求的是与bash脚本'diff'相反的东西。任何建议都表示赞赏。
答案 0 :(得分:2)
工具comm
可能是你想要的 - 给定来自两个文件的排序输入,它可以告诉你哪些行只在文件A中,哪些行在两个文件中,哪些只在文件B中。例如,如果你有file-a
,那就是:
17 p o i u
13 a b c d
14 q w e r t
...和file-b
是:
18 a s d f
13 f g h i
7 z x c v
您可以通过以下方式使用comm
进行流程替换:
$ comm -1 -2 <(cut -d ' ' -f 1 file-a|sort) <(cut -d ' ' -f 1 file-b|sort)
13
-1
参数会抑制仅在第一个文件中的行,而-2
会抑制仅在第二个文件中的行。
答案 1 :(得分:1)
对文件进行排序,然后您可以使用
$ join sortedfile1.txt sortedfile2.txt
您将获得加入的公共ID行。
答案 2 :(得分:0)
cut -f1 file1 file2 | sort | uniq -d