用于查找文件之间相似性的 Shell 脚本
我有两个制表符分隔的文件,其中包含一个 ID 列和 20 个左右的变量。我想找到两个文件中都存在的ID。我要求的是与 bash 脚本“diff”相反的东西。任何建议表示赞赏。
I have two tab delimited files that consist of an ID column and then 20 or so variables. I would like to find those IDs which exist in both files. What I'm asking for is something like the opposite of the bash script 'diff'. Any advice is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
工具
comm
可能就是您想要的 - 给定来自两个文件的排序输入,它可以告诉您哪些行仅在文件 A 中,哪些行在两个文件中都存在,哪些行仅在文件 B 中。例如,如果您有file-a
,即:... 和
file-b
,即:您可以使用
comm
进行进程替换以下方式:-1
参数抑制仅在第一个文件中的内容,-2
会抑制仅在第二个文件中的内容。The tool
comm
may be what you want - given sorted input from two files, it can tell you which lines are only in file A, which are in both, and which are only in file B. For example, if you havefile-a
which is:... and
file-b
which is:You can use
comm
with process substitution in the following way:The
-1
parameter suppresses lines that are only in the first file, and-2
suppresses those that are only in the second.对文件进行排序,然后您就可以使用
,并且您将获得连接的公共 ID 行。
Sort the files then you can use
and you will get the common IDs line joined.
cut -f1 文件 1 文件 2 |排序| uniq-d
cut -f1 file1 file2 | sort | uniq -d