zoukankan      html  css  js  c++  java
  • 【Linux高频命令专题(3)】uniq

    简述

    用途

    报告或删除文件中重复的行。

    语法

    uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]
    

    描述

    uniq 命令删除文件中的重复行。

    uniq 命令读取由 InFile 参数指定的标准输入或文件。该命令首先比较相邻的行,然后除去第二行和该行的后续副本。重复的行一定相邻。(在发出 uniq 命令之前,请使用 sort 命令使所有重复行相邻。)最后,uniq 命令将最终单独的行写入标准输出或由 OutFile 参数指定的文件。InFile 和 OutFile 参数必须指定不同的文件。如果输入文件用“- ”表示,则从标准输入读取;输入文件必须是文本文件。文本文件是包含组织在一行或多行中的字符的文件。这些行的长度不能超出 2048 个字节(包含所有换行字符),并且其中不能包含空字符。

    缺省情况下,uniq 命令比较所有行。如果指定了-f Fields 或 -Fields 标志, uniq 命令忽略由 Fields 变量指定的字段数目。 field 是一个字符串,用一个或多个 <空格 > 字符将它与其它字符串分隔开。
    如果指定了 -s Characters 或 -Characters 标志, uniq 命令忽略由 Characters 变量指定的字段数目。为 Fields 和 Characters 变量指定的值必须是正的十进制整数。

    当前本地语言环境决定了 -f 标志使用的 <空白> 字符以及 -s 标志如何将字节解释成字符。
    如果执行成功,uniq 命令退出,返回值 0。否则,命令退出返回值大于 0。

    参数说明

    -c 去重复的同时在输出行前面加上每行在输入文件中出现的次数。
    
    -d 仅显示重复行。
    
    -u 仅显示不重复的行。
    
    -f Fields 忽略由 Fields 变量指定的字段数目。如果 Fields 变量的值超过输入行中的字段数目, uniq 命令用空字符串进行比较。这个标志和 -Fields 标志是等价的。
    
    -s Characters 忽略由 Characters 变量指定的字符的数目。如果 Characters 变量的值超过输入行中的字符的数目, uniq 用空字符串进行比较。如果同时指定 -f 和 -s 标志, uniq 命令忽略由 -s Characters 标志指定的字符的数目,而从由 -f Fields 标志指定的字段后开始。 这个标志和 +Characters 标志是等价的。
    
    -Fields 忽略由 Fields 变量指定的字段数目。这个标志和 -f Fields 标志是等价的。
    
    +Characters 忽略由 Characters 变量指定的字符的数目。如果同时指定 - Fields 和 +Characters 标志, uniq 命令忽略由 +Characters 标志指定的字符数目,并从由 -Fields 标志指定的字段后开始。 这个标志和 -s Characters 标志是等价的。
    
    - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
    
    - d 只显示重复行 。
    
    - u 只显示文件中不重复的各行 。
    
    - n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
    
    + n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
    
    - f n 与- n相同,这里n是字段数。
    
    - s n 与+n相同,这里n是字符数。
    

    退出状态

    该命令返回以下退出值:
    0 命令运行成功。
    > 0 发生错误。

    补充

    文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样

    示例

    # 要删除名为 fruit 文件中的重复行并将其保存到一个名为 newfruit 的文件中,输入:
    uniq fruit newfruit
    
    # 如果 fruit 文件包含下列行:
    apples
    apples
    peaches
    pears
    bananas
    cherries
    cherries
    
    # 则在您运行uniq 命令后 newfruit 文件将包含下列行:
    apples
    peaches
    pears
    bananas
    cherries
    文件/usr/bin/uniq 包含 uniq 命令。
    
    # uniq -c 的用法,例如:
    harley
    casely
    weedly
    harley
    linda
    
    # cut -c 1-8 | sort | uniq -c > result.txt
    1 casely
    2 harley
    1 linda
    1 weekly
    
    # 显示文件example中不重复的行。
    uniq - u example
    
    # 显示文件example中不重复的行,从第2个字段的第2个字符开始做比较。
    uniq - u - 1 +1 example
    
  • 相关阅读:
    ubuntu 制做samba
    《Programming WPF》翻译 第4章 前言
    《Programming WPF》翻译 第4章 3.绑定到数据列表
    《Programming WPF》翻译 第4章 4.数据源
    《Programming WPF》翻译 第5章 6.触发器
    《Programming WPF》翻译 第4章 2.数据绑定
    《Programming WPF》翻译 第4章 1.不使用数据绑定
    《Programming WPF》翻译 第5章 7.控件模板
    《Programming WPF》翻译 第5章 8.我们进行到哪里了?
    《Programming WPF》翻译 第5章 5.数据模板和样式
  • 原文地址:https://www.cnblogs.com/nixi8/p/4840154.html
Copyright © 2011-2022 走看看