`

Linux命令详解-Uniq

 
阅读更多

本次我们来学习一下uniq shell 命令,wiki见这里:http://en.wikipedia.org/wiki/Uniqwiki的结果比较简单,我们可以直接在系统上先man一下看下结果:

 

 

uniq - report or omit repeated lines

 

 

 

这个摘要很有一下,注意是report or omit,也就是说既能显示某些信息,也能忽略某些信息,后者出现在我们头脑的机会貌似要少一些。还有一点要注意的是,这个命令是对输入行进行操作,也就是行操作,这点在使用前就要有概念。

uniq函数能够从输入判断连续的行是否是unique的,同时把结果输出,可以是标准输出,也可以是文件。

 

 

 

uniq支持参数,其中主要的参数包括:

 

-c:打印出现的行数
-d:打印重复行
-f:跳过比较前面的N个域(Field)
-i:忽略大小写
-s:跳过比较前面的N的字符(Character)
-u:打印唯一行
-w:每行检查的字幕不超过N

 

 

 

 

uniq的主要功能就这么多,下面我们通过例子来验证一下:

我们使用文件corpus.txt,文件内容特意处理过,尽可能使用uniq的这些特性:

 

>>cat corpus.txt
hadoop
dfs
dfsl
hbase
Memcache
sql
Sql
SQL
memcache
MEMCACHE
HBase
hadoop
HADOOP
hive
Hive
sql
sql
big
big
BIG
Big
hbase
APACHE
Apache
apache

 

 

-c参数能够显示出单词出现的次数

 

 

>>cat corpus.txt | uniq -c
      1 hadoop
      1 dfs
      1 dfsl
      1 hbase
      1 Memcache
      1 sql
      1 Sql
      1 SQL
      1 memcache
      1 MEMCACHE
      1 HBase
      1 hadoop
      1 HADOOP
      1 hive
      1 Hive
      2 sql
      2 big
      1 BIG
      1 Big
      1 hbase
      1 APACHE
      1 Apache
      1 apache
 

-i参数不区分大小写,显示遇见的第一行, 如下面的sql和APACHE显示

 

>>cat corpus.txt | uniq -ci
      1 hadoop
      1 dfs
      1 dfsl
      1 hbase
      1 Memcache
      3 sql
      2 memcache
      1 HBase
      2 hadoop
      2 hive
      2 sql
      4 big
      1 hbase
      3 APACHE
 

-d参数显示出出现次数大于1的行

 

>>cat corpus.txt | uniq -cid
      3 sql
      2 memcache
      2 hadoop
      2 hive
      2 sql
      4 big
      3 APACHE
 

 

-u参数显示只出现过一次的行

 

>>cat corpus.txt | uniq -ciu
      1 hadoop
      1 dfs
      1 dfsl
      1 hbase
      1 Memcache
      1 HBase
      1 hbase

 

-s参数表示从第N个字符开始统计,下面例子表示从第一个字符开始统计,即忽略首字符,看最后Apache的输出

 

>>cat corpus.txt | uniq   -c -s 1
      1 hadoop
      1 dfs
      1 dfsl
      1 hbase
      1 Memcache
      2 sql
      1 SQL
      1 memcache
      1 MEMCACHE
      1 HBase
      1 hadoop
      1 HADOOP
      2 hive
      2 sql
      2 big
      1 BIG
      1 Big
      1 hbase
      1 APACHE
      2 Apache
 

-w参数表示只比较N个字符,这里只比较两个字符,可以观察下dfs的输出。

 

>>cat corpus.txt | uniq  -c  -s 1 -w 2 
      1 hadoop
      2 dfs
      1 hbase
      1 Memcache
      2 sql
      1 SQL
      1 memcache
      1 MEMCACHE
      1 HBase
      1 hadoop
      1 HADOOP
      2 hive
      2 sql
      2 big
      1 BIG
      1 Big
      1 hbase
      1 APACHE
      2 Apache
 

 

uniq的主要命令就是这些,还有个-f参数大家可以自行参考下官网,uniq的命令看起来不是特别强大,但是和sort一起使用会发挥出巨大的能量,大家可以先行学习下sort的功能,下次我们再来学习sort命令

 

 

 

 

分享到:
评论

相关推荐

    linux下uniq和sort命令用法详解.docx

    linux下uniq和sort命令用法详解.docx

    Linux命令 sort、uniq、tr工具详解

    主要介绍了Linux命令 sort、uniq、tr工具详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Linux命令搜索工具linux-command.zip

    Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。   Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的...

    Linux sort,uniq,cut,wc命令详解

     sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。  sort语法  [root@www~]# sort [-fbMnrtuk] ...

    Linux课堂笔记.pdf

    3、 Linux目录详解 三、 命令概述 1、 常用快捷键 2、 Linux 终端命令格式 2.1 终端命令格式 2.2 查阅命令帮助信息 2.3 文件和目录常用命令 2.3.1 查看目录内容 2.3.2 ls命令 2.3.3 nd指令 2.4 相对路径和绝对路径 ...

    Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)

    2 **uniq命令:删除重复行;wc –l命令:统计行数** 1.2 查看CPU核数 # cat /proc/cpuinfo | grep “cpu cores” | uniq cpu cores : 4 1.3 查看CPU型号 # cat /proc/cpuinfo | grep ‘model name’ |uniq model name...

    详解Linux服务器状态、性能相关命令

    查看Linux服务器CPU详细情况 #查看CPU的信息 [root@host ~]# cat /proc/cpuinfo  #查看物理CPU的个数 [root@host /]# cat /proc/cpuinfo | grep physical id | sort | uniq | wc -l #查看每个物理CPU的核数 ...

    linux – CenterOS 搞定 【端口】 + 【MySQL / Mariadb】: 安装、远程连接

    《centos7 安装Mariadb》 ... 《Linux环境下修改MySQL端口方法》 列出所有端口 netstat -ntlp – 《Centos查看端口占用情况和开启端口命令》 《操作防火墙》 日志查询: cat /var/log/...《Linux awk命令详解》 作者

    Linux使用教程(教程)

    目 录 一、Linux基础 5 1.什么是Linux? 5 2.什么是自由软件、GNU和GPL? 5 3.从技术上说,Linux有什么优点? 5 4.我需要学习Linux吗?...十五、Linux操作系统中备份恢复技术的详解 129 十六、GRUB使用说明 131

    Linux-命令行 管道(Pipelines)详解

     uniq, UNIQue, 输出没有重复行的数据; 参数-d, 可以输出重复行;  wc, 单词统计(Word Count); 参数-l, 只统计行;  grep, 输出匹配模式, Global Regular Expression Print, 全局正则表达式打印;  如...

    用shell脚本防ssh和vsftpd暴力破解的详解讲解

    脚本需求如下:此SHELL脚本放在crontab计划任务里,每隔6小时(此时间根据实际情况来定义)就去读取/var/log/secure脚本,取出里面恶意猜测IP,如果单位时间内(一星期)的连接数是高于一个阀值,例如100(此阀值也...

Global site tag (gtag.js) - Google Analytics