linux删除两个文档中相同记录的行

文档1(a.txt)

111
222
333
444
555
666
777
888
999

文档2(b.txt)

aaa
bbb
ccc
ddd
eee
111
fff
222
333
jjj
kkk
444

整理后的文件三內容如下:  (c.txt)
aaa
bbb
ccc
ddd
eee
fff
jjj
kkk

作法如下:
    1.先合并两个文本到一个临时文件中 
        cat a.txt b.txt > temp1.txt
    2. 对生成的临时文件內容进行排序,將排序后的结果放到一个临时文件中
        sort +0 -0 -o temp2.txt temp1.txt  /* 以第一個字段對文件temp1.txt進行排序,
                                        將排序后的結果放到temp2.txt文件中 */
    3. 對排序后的文件進行重複行的刪除
        uniq -u temp2.txt > c.txt    /*對重複的行全部刪除*/
        注: 如果想對重複的記錄保留一個,其餘的刪除則用法如下.
        uniq -d temp2.txt > c.txt    /*對重複的行只保留一行*/
至此 c.txt中的內容就是兩個文件相減后的內容了.

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。