• Linux uniq命令


    介绍

    uniq命令是一个文本去重命令,它能对标准输入和文本文件进行去重操作,并且能将结果通过stdout输出,uniq命令经常会同sort命令一起使用,uniq命令默认对多条重复的行只显示一行。

    参数

      -c, --count           在每行记录前显示该行内容的数量
      -d, --repeated        仅显示重复的记录行,并且去重
    -D, --all-repeated[=delimit-method] 仅显示重复的行,并不去重
    -f, --skip-fields=N avoid comparing the first N fields -i, --ignore-case 去重显示,uniq的默认参数
    -s, --skip-chars=N 指定忽略行的前N个字符 -u, --unique 仅显示非重复的行
    -z, --zero-terminated 末尾生成0个字节的终止符作为输出(),这样的目的就是避免一条记录行因为存在空格被识别为多行
    -w, --check-chars=N 只对比指定的N个字符,默认是从开始算起,如果和-s一起使用那么要排除-s指定的字符数

    测试数据

    1.显示行的数量

    2.只显示重复的行

     

    3.仅显示非重复的行

    4.-s和-w

    -s 2:忽略前两个字符,即从第二列开始比较

    -w 2:只比较两个字符,即只比较第二列的前两个字符

    所以,ja、fe、ma个取了重复的第一条记录行

    5.生成0个字节的终止符,

    例如:当文本中的行记录是以空格分隔,并且需要将标准输出传给xargs,由于xargs是以空格作为分隔符,但是实际需要将整个文本内容作为一个完整的输出,这个时候就需要使用-z参数在文本末尾生成的终止符告诉程序整个文本作为一个整体,

    [root@localhost test]# cat test
    a b 
    c d
    [root@localhost test]# uniq  test |xargs 
    a b c d

    注意:结果并不是我们要的结果,这时就需要文本的末尾生成的分隔符作为行的行的结束标示

    [root@localhost test]# uniq -z test |xargs -0
    a b
    c d 

    使用了-z参数之后就将整个文本作为一个整体在末尾生成一个的分隔符

    总结

    备注:

        作者:pursuer.chen

        博客:http://www.cnblogs.com/chenmh

    本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

    《欢迎交流讨论》

  • 相关阅读:
    Security 前端页面配置
    使用HttpSession获取用户信息
    开启使用Tonken记住我功能
    基于注解的方式发送和订阅消费消息
    通过Security提供的SecurityContextHolder获取登录用户信息
    RabbitMQ 基于API的方式发送和消费消息
    TypeScript declare Object Array Interface methods All In One
    js get Set the first item All In One
    macOS run VSCode from terminal All In One
    在线 Java 语言编程 All In One
  • 原文地址:https://www.cnblogs.com/chenmh/p/5521111.html
Copyright © 2020-2023  润新知