linux文件处理之重复行处理,sort和uniq使用

369 阅读1分钟

 

  1. uniq命令,

uniq只能去掉连续重复的行

举个栗子:

#cat test.txt

abcd
abcd
abcd
ddd
abcd

则执行cat test.txt | uniq后,结果为:

#cat test.txt | uniq

abcd
ddd
abcd

上面栗子打印出文件中不同的行,如果希望打印出相同的行,则cat test.txt | uniq -d

#cat test.txt | uniq -d

abcd

  1. sort命令

uniq只能处理连续的行,如

#cat test.txt

abcd
ddd
abcd
aaa
abcd

#cat test.txt | uniq

abcd
ddd
abcd
aaa
abcd

如果希望去掉所有的重复行,则可以先使用sort命令对其进行排序,然后再处理。因此用sort能去掉不连续的行

举个栗子:

#sort -u test.txt

abcd
ddd

上述命令也可以写为:

#cat test.txt | sort | uniq 

abcd
ddd

后面处理就可以跟uniq命令一样了,如获取重复的行,可以写为:

#cat test.txt | sort | uniq -d

abcd