Unix命令将两个列表分成三个:两者之间的共同点和每个列表的唯一性?

时间:2012-02-08 17:44:54

标签: unix grep set

是否有一个简单的unix命令集我可以用来将两个列表分成三个列表,这两个列表由两个列表之间的公共行组成,第一行是唯一的行,最后一行是唯一的行?列表将是未排序的,每行都是唯一的。

例如: 清单1: 猫 帽子 框

清单2: 框 狗 岩石

输出:盒子,猫帽子,狗岩石

1 个答案:

答案 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列缩小(共同的词) ),只留下不常见的词。

我希望这会有所帮助。