2011-09-05 226 views
0

我有一个Masters.txt(所有记录)和一个New.txt文件。我想处理New.txt反对Masters.txt并输出New.txt所有行中Masters.txt中不存在的行Shell行命令排序命令

我不确定这是排序-u命令可以执行的操作。

+0

可能重复:http://stackoverflow.com/q/5812756/576875 – arnaud576875

回答

2

排序两个文件首先使用sort,然后使用comm命令列出只存在new.txt行,而不是在masters.txt。例如:

sort masters.txt >masters_sorted.txt 
sort new.txt >new_sorted.txt 
comm -2 -3 new_sorted.txt masters_sorted.txt 

comm默认情况下会在其输出中生成三​​列;列1包含对第一个文件唯一的行,列2包含对第二个文件唯一的行;第3列包含两个文件共有的行。 -2 -3开关禁止第二列和第三列。

+0

它不应该是像 通讯-2 -3 new_sorted.txt masters_sorted.txt> new.txt – acctman

+0

好吧,如果你想存储导致''new.txt''(失去旧的内容),那么是的,它应该。 –

+0

嗯,是否有一个文件列表项限制...它似乎并没有在工作。没有输出,也没有在文件中更改 – acctman