• uniq 命令


    uniq 命令

      文字

      uniq是LINUX命令

      用途

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

      语法

      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 仅显示重复行。

      -f Fields 忽略由 Fields 变量指定的字段数目。如果 Fields 变量的值超过输入行中的字段数目, uniq 命令用空字符串进行比较。这个标志和 -Fields 标志是等价的。

      -u 仅显示不重复的行。

      -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 标志是等价的。

      退出状态

      该命令返回以下退出值:

      0 命令运行成功。

      >0 发生错误。

      示例

      要删除名为 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

    补充:

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

      语法:uniq [选项] 文件

      说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。

      该命令各选项含义如下:、

      - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。

      - d 只显示重复行 。

      - u 只显示文件中不重复的各行 。

      - n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。

      +n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。

      - f n 与- n相同,这里n是字段数。

      - s n 与+n相同,这里n是字符数。

      例如:

      1. 显示文件example中不重复的行。

      uniq - u example

      2. 显示文件example中不重复的行,从第2个字段的第2个字符开始做比较。

      uniq - u - 1 +1 example

     

    reference:http://blog.csdn.net/yuan892173701/article/details/8994320

  • 相关阅读:
    [转]Kqueue与epoll机制
    [转]Docker中的镜像
    [转]linux awk命令详解
    [转]Linux Shell 1>/dev/null 2>&1 含义
    file_get_contents(): SSL operation failed with code 1...解决办法和stream_context_create作用
    PHP abstract与interface之间的区别
    PHP基于Redis的全局订单号id
    Eclipse for php+Xdebug,搭建php单步调试环境
    Eclipse launch configuration----Eclipse运行外部工具
    MySql 缓冲池(buffer pool) 和 写缓存(change buffer) 转
  • 原文地址:https://www.cnblogs.com/haore147/p/4056883.html
Copyright © 2020-2023  润新知