是否有一个简单的unix命令集我可以用来将两个列表分成三个列表,这两个列表由两个列表之间的公共行组成,第一行是唯一的行,最后一行是唯一的行?列表将是未排序的,每行都是唯一的。
例如: 清单1: 猫 帽子 框
清单2: 框 狗 岩石
输出:盒子,猫帽子,狗岩石
答案 0 :(得分:1)
cat file1
box
cat
hat
cat file2
box
dog
rock
comm file1 file
box
cat
dog
hat
rock
输出是基于列的,列只是第一个文件中的数据,第二列只是第二个文件中的数据,第三列是两者共有的值。
请注意,数据已排序。
如果您正在使用bash,则可以执行
之类的操作 comm <(sort file1) <(sort file2)
临时对文件进行排序。
将comm
-1 -2
用于1 and 2
,你可以压制列-3
的输出,当然{{1}}本身会使第3列缩小(共同的词) ),只留下不常见的词。
我希望这会有所帮助。