举办聚会时,我会记录客人吃的所有东西。[1]
笔记:我插入了几个标签以使所有内容均可读。
party1.txt
:
Bernhard Apple
Jeremy Cake
Liz Cake
Daisy Pear
party2.txt
:
Liz Cake
Bernhard Pear
Jeremy Cake
Susan Orange
现在我想通过比较文件来查看客人是否可以预测。我可以使用
cat party1.txt | sort > party1-sorted.txt
cat party2.txt | sort > party2-sorted.txt
但是手动比较很慢。bash 有没有机会使用命令pasteMatch
,给出
Bernhard Apple Pear
Daisy Pear
Jeremy Cake Cake
Liz Cake Cake
Susan Orange
[1]当然不是。
答案1
最简单的解决方案是使用加入命令。
语法如下:
join -j 1 -a 1 -a 2 party1-sorted.txt party2-sorted.txt
默认连接字段是第一个,以空格分隔。但是,此命令会将多个空格替换为一个:
Bernhard Apple Pear
Daisy Pear
Jeremy Cake Cake
Liz Cake Cake
Susan Orange
更复杂的输出格式将需要使用 awk 或 sed。