jasmine214--love

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

          linux ---用uniq實現文件的并集和交集

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

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

          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
           
          差集可以用以下兩種方法實現:
          grep -F -f listb lista -v
          sort B B A | uniq -u

          原文:http://zhaizhenxing.blog.51cto.com/643480/134556/
          主站蜘蛛池模板: 分宜县| 加查县| 泽州县| 汤阴县| 南城县| 伊春市| 普宁市| 合江县| 华宁县| 吉木萨尔县| 青河县| 饶阳县| 宜兰市| 彰化市| 达孜县| 澄迈县| 剑河县| 佛冈县| 商水县| 方山县| 车致| 渝中区| 阜阳市| 庆城县| 老河口市| 大连市| 都江堰市| 新民市| 许昌市| 兴海县| 都昌县| 共和县| 井陉县| 会同县| 北川| 贵南县| 阿瓦提县| 仪陇县| 陕西省| 景洪市| 吉木乃县|