以以下格式提供两个文件(以便任何文件都可以重复):
file1 (仅包含数字的文件),例如:
10
40
20
10
10
file2 (仅包含数字的文件)例如:
30
40
10
30
0
如何打印文件的内容,以便从任何文件中删除重复项。
例如,根据上面2个文件的输出,必须为:
10
40
20
30
40
10
0
注意:在输出中,我们可以得到重复项(最多是2个数字,出现两次),但是,从任何文件中,我们都将获得不重复的内容!
如何仅使用一个命令使用sort , uniq , cat
进行操作?
即,类似这样的内容:cat file1 file2 | sort | uniq
(但是,此命令当然不好-它不能解决问题,仅用于解释我所说的“仅使用一个命令”的意思)。
我很乐意听听您的想法:)
答案 0 :(得分:2)
如果我正确理解了这个问题,则此awk
应该在保留顺序的同时做到这一点:
awk 'FNR==1{delete a}!a[$0]++' file1 file2
如果您不需要保留订单,可以很简单:
sort -u file1; sort -u file2
如果您不想使用列表(;
),也可以选择以下方式:
cat <(sort -u file1) <(sort -u file2)