输入(两个文本文件):
> cat foo.txt
alpha
beta
delta
>
和
> cat bar.txt
gamma
epsilon
beta
>
输出(删除两个文件中出现的行):
> SOMEMAGIC foo.txt < bar.txt > foofixed.txt
> cat foofixed.txt
alpha
delta
>
和
> SOMEMAGIC bar.txt < foo.txt > barfixed.txt
> cat barfixed.txt
gamma
epsilon
>
问题: 怎么做?
答案1
您可以使用comm
它,但它需要对输入进行排序。
comm -23 <(sort foo.txt) <(sort bar.txt) > foofixed.txt
comm -13 <(sort foo.txt) <(sort bar.txt) > barfixed.txt
-23
意思是“仅显示文件 1 特有的行”。