jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          linux ---用uniq實現(xiàn)文件的并集和交集

          Posted on 2011-01-25 14:05 幻海藍夢 閱讀(3012) 評論(0)  編輯  收藏 所屬分類: Linux
          經(jīng)常有這樣的需求:兩個文本文件要求取重復(fù)的行或只取不重復(fù)的,簡單的情況下用sort和uniq來處理是非常方便的:
          利用現(xiàn)存兩個文件,生成一個新的文件

          1. 取出兩個文件的并集(重復(fù)的行只保留一份)

          2. 取出兩個文件交集(只留下同時存在于兩個文件中的文件)

          3. 刪除交集,留下其他的行


          1. cat file1 file2 | sort | uniq
          2. cat file1 file2 | sort | uniq -d
          3. cat file1 file2 | sort | uniq -u

          例如:
          [zzx@test55 ~]$ cat a
          1
          2
          3
          [zzx@test55 ~]$ cat b
          23
          2
          3
          4
          5
          6

          排序:
          [zzx@test55 ~]$ cat a b|sort
          1
          2
          2
          23
          3
          3
          4
          5
          6

          去重(并集):
          [zzx@test55 ~]$ cat a b|sort|uniq
          1
          2
          23
          3
          4
          5
          6

          交集:
          [zzx@test55 ~]$ cat a b|sort|uniq -d
          2
          3

          去除交集后的并集
          [zzx@test55 ~]$ cat a b|sort|uniq -u
          1
          23
          4
          5
          6
           
          差集可以用以下兩種方法實現(xiàn):
          grep -F -f listb lista -v
          sort B B A | uniq -u

          原文:http://zhaizhenxing.blog.51cto.com/643480/134556/
          主站蜘蛛池模板: 临武县| 馆陶县| 宁蒗| 沙雅县| 扶绥县| 营口市| 辽源市| 砀山县| 绥宁县| 平顶山市| 郧西县| 绵竹市| 汝南县| 德安县| 修水县| 康保县| 九寨沟县| 自治县| 连城县| 河北区| 揭阳市| 阜南县| 庄浪县| 嘉善县| 昂仁县| 西乌珠穆沁旗| 沁水县| 城口县| 阿荣旗| 永安市| 贵南县| 拜泉县| 平潭县| 汝州市| 阜康市| 昌吉市| 金平| 大竹县| 南溪县| 东兴市| 桃江县|