本次我们来学习一下uniq
shell 命令,wiki见这里:http://en.wikipedia.org/wiki/Uniq;wiki的结果比较简单,我们可以直接在系统上先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命令 sort、uniq、tr工具详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。 Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的...
sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。 sort语法 [root@www~]# sort [-fbMnrtuk] ...
3、 Linux目录详解 三、 命令概述 1、 常用快捷键 2、 Linux 终端命令格式 2.1 终端命令格式 2.2 查阅命令帮助信息 2.3 文件和目录常用命令 2.3.1 查看目录内容 2.3.2 ls命令 2.3.3 nd指令 2.4 相对路径和绝对路径 ...
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服务器CPU详细情况 #查看CPU的信息 [root@host ~]# cat /proc/cpuinfo #查看物理CPU的个数 [root@host /]# cat /proc/cpuinfo | grep physical id | sort | uniq | wc -l #查看每个物理CPU的核数 ...
《centos7 安装Mariadb》 ... 《Linux环境下修改MySQL端口方法》 列出所有端口 netstat -ntlp – 《Centos查看端口占用情况和开启端口命令》 《操作防火墙》 日志查询: cat /var/log/...《Linux awk命令详解》 作者
目 录 一、Linux基础 5 1.什么是Linux? 5 2.什么是自由软件、GNU和GPL? 5 3.从技术上说,Linux有什么优点? 5 4.我需要学习Linux吗?...十五、Linux操作系统中备份恢复技术的详解 129 十六、GRUB使用说明 131
uniq, UNIQue, 输出没有重复行的数据; 参数-d, 可以输出重复行; wc, 单词统计(Word Count); 参数-l, 只统计行; grep, 输出匹配模式, Global Regular Expression Print, 全局正则表达式打印; 如...
脚本需求如下:此SHELL脚本放在crontab计划任务里,每隔6小时(此时间根据实际情况来定义)就去读取/var/log/secure脚本,取出里面恶意猜测IP,如果单位时间内(一星期)的连接数是高于一个阀值,例如100(此阀值也...