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

时间:2014-11-13 16:52:39   收藏:0   阅读:235

文档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中的內容就是兩個文件相減后的內容了.

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!