匹配行首的文件

匹配行首的文件

举办聚会时,我会记录客人吃的所有东西。[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。

相关内容