linux命令用于删除重复值

时间:2014-07-30 09:12:44

标签: linux

我有2个文件 file1包含

1,2,3,4,5

file2包含

4,5,6,7,8

输出应该以新文件假设它为file3应该包含

1,2,3,4,5,6,7,8,

并且不仅如果file1和file2中的内容改变了

file1新内容

10,11,12,13,14

file2新内容

13,14,15,16,17,18

合并后,file3应该包含以下值

1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18

我已经尝试了几个命令,如sort,uniq,cat等,但它没有工作

2 个答案:

答案 0 :(得分:2)

sortuniq之类的命令可以在线上工作。

您所要做的就是将逗号转换为换行符,执行sort -uuniq,然后将换行符转换回逗号,例如

$ cat a
1,2,3,4,5
$ cat b
4,5,6,7,8
$ cat a b | tr ',' '\n' | sort -u | tr '\n' ','
1,2,3,4,5,6,7,8, 

您可能会发现Set Operations in the Unix Shell有帮助。

答案 1 :(得分:2)

如果要将合并结果发送到file3:

cat file1 file2 | sed s/,/\\n/g | sort  -u | tr "\\n" "," >> file3