文本處理時(shí),經(jīng)常要?jiǎng)h除重復(fù)行,下面是Linux刪除重復(fù)行代碼的三種方法
第一,用sort+uniq,注意,單純uniq是不行的。
sort -n test.txt | uniq
第二,用sort+awk命令,注意,單純awk同樣不行,原因同上。
?sort -n $file | awk '{if($0!=line)print; line=$0}'
第三,用sort+sed命令,同樣需要sort命令先排序。
sort -n $file | sed '$!N; /^.?/n/1$/!P; D'
Shell腳本
# !/bin/shfile='test.txt'sort -n $file | uniqsort -n $file | awk '{if($0!=line)print; line=$0}'sort -n $file | sed '$!N; /^/(.*/)/n/1$/!P; D'測(cè)試文件:
yanggang@barry$ cat test.txt
aaa
bbbbb
ccccc
123
aaaaa
123
bbb
aaa
執(zhí)行結(jié)果:
yanggang@barry$ ./diffRow.sh
aaa
aaaaa
bbb
bbbbb
ccccc
123
以上就是Linux刪除重復(fù)行代碼的三種方法,更多內(nèi)容請(qǐng)繼續(xù)關(guān)注武林技術(shù)頻道網(wǎng)站!
新聞熱點(diǎn)
疑難解答
圖片精選