zoukankan      html  css  js  c++  java
  • uniq命令的用法

    uniq用法
    u n i q
    用来从一个文本文件中去除或禁止重复行。一般u n i q假定文件已分类,并且结果正确。
    我们并不强制要求这样做,如果愿意,可以使用任何非排序文本,甚至是无规律行。
    可以认为u n i q有点像s o r t命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一个重要区别。s o r t的唯一性选项去除所有重复行,而u n i q命令并不这样做。重复行是什么?在u n i q里意即持续不断重复出现的行,中间不夹杂任何其他文本,现举例如下:

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ cat myfile.txt
    May Day
    May Day
    May Day
    Going DOwn
    May Day
    May Day.
    May Day


    u n i q
    将前三个May Day看作重复副本,但是因为第4行有不同的文本,故并不认为第五行持续的May Day为其副本。u n i q将保留这一行。
    命令一般格式:

    [Copy to clipboard] [ - ]

    CODE:

    $uniq -u d c -f input-file out-file



    QUOTE:

    其选项含义:
    -u
    只显示不重复行。
    -d
    只显示有重复数据行,每种重复行只显示其中一行
    -c
    打印每一重复行出现次数。
    -f n
    为数字,前n个域被忽略。
    一些系统不识别- f选项,这时替代使用- n


    创建文件m y f i l e . t x t,在此文件上运行u n i q命令。

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq myfile.txt
    May Day
    Going DOwn
    May Day
    May Day.
    May Day


    注意第5行保留下来,其文本为最后一行May Day。如果运行sort -u,将只返回May DayGoing Down

    连续重复出现
    使用- c选项显示行数,即每个重复行数目。本例中,行May Day重复出现三次

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq -c myfile.txt
          3 May Day
          1 Going DOwn
          1 May Day
          1 May Day.
          1 May Day


    1.
    不唯一
    使用- d显示重复出现的不唯一行:

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq -d myfile.txt
    May Day



    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq -u myfile.txt
    Going DOwn
    May Day
    May Day.


    2.
    对特定域进行测试
    使用- n只测试一行一部分的唯一性。例如- 5意即测试第5域后各域唯一性。域从1开始记数。
    如果忽略第1域,只测试第2域唯一性,使用- n2,下述文件包含一组数据,其中第2域代表组代码。

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ cat parts.txt
    AK123 OPP Y13
    DK122 OPP Y24
    EK999 OPP M2



    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ cat parts.txt
    AK123 33 46 6u OPP ty yu
    DK122 5h 67 y8 OPP ty yu
    EK999 56 56 78 IIY ty yu


    运行u n i q,将返回所有行。因为这个文件每一行都不同。

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ cat parts.txt
    1 AK123 33 46 6u OPP ty yu
    1 DK122 5h 67 y8 OPP ty yu
    1 EK999 56 56 78 IIY ty yu


    如果指定测试在第4域后,结果就会不同。u n i q会比较三个相同的O PP,因此将返回一行。

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq -f4 -c parts.txt
          2 AK123 33 46 6u OPP ty yu
          1 EK999 56 56 78 IIY ty yu


    指定第5域,即从第6域开始比较:

    [Copy to clipboard] [ - ]

    CODE:

    [sam@chenwy sam]$ uniq -f5 -c parts.txt
          3 AK123 33 46 6u OPP ty yu


    如果‘- f’返回错误,替代-n使用:

  • 相关阅读:
    「应用界面美化」DevExpress Winform数据网格如何绑定数据
    使用Northwind数据库的 .NET Core应用你了解多少?
    如何将现有的WinForms / WPF项目转换为.NET Core?这里有你想要的答案!
    php 微信分享
    连表查询取最新时间
    filesort
    项目执行shell脚本
    redis做消息队列
    es pdf 文档
    vim 常用工具
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170988.html
Copyright © 2011-2022 走看看