语  法:uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
 
补充说明:uniq可检查文本文件中重复出现的行列。
 
参  数:
  -c: 在每列旁边显示该行重复出现的次数。
  -d: 仅显示重复出现的行列。
  -f: 忽略比较指定的栏位。
  -s: 忽略比较指定的字符。
  -u: 仅显示出一次的行列。
  -w: 指定要比较的字符。
  -n:前n个字段和每个字段前的空白一起被忽略
  +n:前n个字符被忽略
  
 
uniq命令的作用:显示唯一的行,对于那些连续重复的行只显示一次! 
 
  接下来通过实例说明: 
 
> cat fruits
apple banana tangerine watermelon walnut
apple tangerine banana watermelon walnut
apple tangerine banana watermelon walnut
tangerine apple banana watermelon walnut
apple tangerine banana watermelon walnut
> uniq fruits #不加任何参数,仅显示连续重复的行一次 
apple banana tangerine watermelon walnut
apple tangerine banana watermelon walnut
tangerine apple banana watermelon walnut
apple tangerine banana watermelon walnut
 
> uniq -c fruits #-c 参数显示文件中每行[连续]出现的次数
  1 apple banana tangerine watermelon walnut
  2 apple tangerine banana watermelon walnut
  1 tangerine apple banana watermelon walnut
  1 apple tangerine banana watermelon walnut
>
 
 
> uniq -d fruits #-d选项仅显示文件中连续重复出现的行
apple tangerine banana watermelon walnut
>
 
> uniq -u fruits #-u选项显示文件中没有连续出现的行
apple banana tangerine watermelon walnut
tangerine apple banana watermelon walnut
apple tangerine banana watermelon walnut
 
  忽略每行的前2个字段,忽略第二个空白字符和第三个字段的首字符,结果是从第三个字段的第二个字符开始比较
> uniq -f 2 -s 2 fruits
apple banana tangerine watermelon walnut
apple tangerine banana watermelon walnut
 
 
 
 
 
 
======================================================
 

sort命令总结

功能:排序
语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数:
  -b   忽略每行前面开始出的空格字符。
  -d   排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  -f   排序时,将小写字母视为大写字母。
  -i   排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  -c   检查文件是否已经按照顺序排序。
  -m   将几个排序好的文件进行合并。
  -M  前面3个字母依照月份的缩写进行排序。
  -n   依照数值的大小排序。
  -o<输出文件>   将排序后的结果存入指定的文件。
  -r   以相反的顺序来排序。
  -t<分隔字符>   指定排序时所用的栏位分隔字符。
  -k 指定域
  --help   显示帮助。
  --version   显示版本信息。
--------------------------------------------------------------------------------------------------[root@Jesse ~]# cat c.txt
7 July
8 August
9 September
10 October
11 November
12 December
1 January
2 February
3 March
4 April
5 May
6 June
[root@Jesse ~]# sort -c c.txt
sort: c.txt:4: disorder: 10 October  //说明未按照某种顺序进行排列,如果什么也不显示,则说明已按某种顺序分类。
--------------------------------------------------------------------------------------------------[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500
[root@Jesse ~]# cat b.txt
3 ladygaga 1
5 ladygaga 9
0 ladygaga 5
9 ladygaga 4
6 ladygaga 2
8 ladygaga 3
7 ladygaga 0
1 ladygaga 6
4 ladygaga 7
2 ladygaga 8
[root@Jesse ~]# sort -m a.txt c.txt //将两个文件内容整合到一起
7 July
8 August
9 September
10 October
11 November
12 December
1 January
2 February
3 March
4 April
5 May
6 June
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500
--------------------------------------------------------------------------------------------------进行月份排序
[root@Jesse ~]# cat c.txt
 July
 August
 September
 October
 November
 December
 January
 February
 March
 April
 May
 June
[root@Jesse ~]# sort -M c.txt
 January
 February
 March
 April
 May
 June
 July
 August
 September
 October
 November
 December
--------------------------------------------------------------------------------------------------[root@Jesse ~]# sort -M c.txt -o d.txt  //将内容排序后导入到d.txt这个文件。
--------------------------------------------------------------------------------------------------[root@Jesse ~]# cat e.txt
1
2
3
4
5
6
7
8
[root@Jesse ~]# sort -r e.txt   //逆序进行排列
8
7
6
5
4
3
2
1
--------------------------------------------------------------------------------------------------[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500
[root@Jesse ~]# sort -t" " -k 3 a.txt  //出现空格的地方作为第一域进行分类
gugeee 120 3000
sohuee 100 4500
google 110 5000
baidue 100 5010
########################################################################有关-k 的实例演示
########################################################################准备工作:
[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5000
gugeee 120 3000
sohuee 101 4500
------------------------------------------------------------------------------------------------按照字母进行排序,注意 -t 后面的引号里需要有一个空格,这里的单引号,双引号都无所谓
[root@Jesse ~]# sort -t" " -k 1 a.txt
baidue 100 5000
google 110 5000
gugeee 120 3000
sohuee 101 4500
[root@Jesse ~]# sort -t' ' -k 1 a.txt
baidue 100 5000
google 110 5000
gugeee 120 3000
sohuee 101 4500

按照以空格为分割域的第二域进行排序
[root@Jesse ~]# sort -t' ' -k 2 a.txt
baidue 100 5000
sohuee 101 4500
google 110 5000
gugeee 120 3000

我们来测试下第二域相同的情况
[root@Jesse ~]# cat a.txt
google 110 5000
baidue 100 5010
gugeee 120 3000
sohuee 100 4500

通过以下实例我们发现,以空格为分割域,第二域相同的时候,第三域是没有任何次序的,如果遇到第二域相同,第三域也要进行排序的时候,我们怎么办呢
[root@Jesse ~]# sort -n -t' ' -k 2 a.txt
baidue 100 5010
sohuee 100 4500
google 110 5000
gugeee 120 3000

看如下演示,如果第二域相同,那么我们将从第三域进行升降处理
[root@Jesse ~]# sort -n -t' ' -k 2 -k 3 a.txt
sohuee 100 4500
baidue 100 5010
google 110 5000
gugeee 120 3000

如果我想让以空格为分割域的第三域进行倒叙排列
[root@Jesse ~]# sort -n -t' ' -k 3r a.txt
baidue 100 5010
google 110 5000
sohuee 100 4500
gugeee 120 3000

如果我想让以空格为分割域的第三域以正序进行排列
[root@Jesse ~]# sort -t' ' -k 3n a.txt
gugeee 120 3000
sohuee 100 4500
google 110 5000
baidue 100 5010

如果第二域有两个数相同,那么我们将以升降来排序
[root@Jesse ~]# sort -t' ' -k 2n -k 3n a.txt
sohuee 100 4500
baidue 100 5010
google 110 5000
gugeee 120 3000

如过只是想从第三个字母起进行排序
[root@Jesse ~]# sort -t' ' -k 1.3 a.txt
gugeee 120 3000
sohuee 100 4500
baidue 100 5010
google 110 5000

如果只想以第一域的第三个字符进行排序:-k 1.3,1.3 表示只以第三个字母进行排序
[root@Jesse ~]# sort -t' ' -k 1.3,1.3 a.txt
gugeee 120 3000
sohuee 100 4500
baidue 100 5010
google 110 5000

n表示进行排序,r表示逆序
[root@Jesse ~]# sort -t" " -k 2nr a.txt
gugeee 120 3000
google 110 5000
baidue 100 5010
sohuee 100 4500

以第二域进行排序,如果遇到重复的,就删除
[root@Jesse ~]# sort -t" " -k 2n -u  a.txt
baidue 100 5010
google 110 5000
gugeee 120 3000

uniq,sort,的更多相关文章

  1. shell uniq sort -u 去重排序

    sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢? $ cat test jason jason jason fffff jason 下面分别执行三个命令 :sort ...

  2. Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

  3. linux shell 去重 uniq和sort的区别

    sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢?$ cat test              jasonjasonjasonfffffjason 下面分别执行三个命 ...

  4. linux shell——md5sum,sha1sum,sort,uniq (转)

    1.文件校验 1. md5sum eg: md5sum filename 注:生成一个128位的二进制位,即32位的十六进制字符串 1.验证文件的正确性: md5sum  file1 file2 &g ...

  5. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

  6. linux 命令 — sort、uniq

    sort uniq sort:对行或者文本文件排序 uniq:去除重复的行 常用 sort -n file.txt 按数字进行排序 sort -r file.txt 按逆序进行排序 sort -M f ...

  7. shell中uniq与sort -u 两种去重的对别

    sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢?$ cat test              jasonjasonjasonfffffjason 下面分别执行三个命 ...

  8. 《linux 字符处理》- grep/sort/uniq/tr/paste

    一:基本 字符处理主要是文本的搜索和处理. 搜索也主要使用到了 管道 作为媒介. 二: grep 搜索文本 基本语法 * grep [-incv] ’文本’ 文件 * i 不区分大小写 * c 匹配行 ...

  9. linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解

    一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...

随机推荐

  1. addslashes() 函数和stripslashes()函数

    addslashes() 函数 定义和用法 addslashes() 函数在指定的预定义字符前添加反斜杠. 这些预定义字符是: 单引号 (') 双引号 (") 反斜杠 (\) NULL 语法 ...

  2. IIS32位,64位模式下切换

    一.32位模式 1.cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/appPools/enable32bitappon ...

  3. vim显示行数

    在根目录下,新建.vimrc文件,添加以下内容 set number

  4. Lua与C++相互调用

    {--1.环境--} 为了快速入手,使用了小巧快速的vc++6.0编译器 以及在官网下载了Lua安装包..官网地址{--http://10.21.210.18/seeyon/index.jsp--} ...

  5. EDIUS设置Alpha转场的教程

    有刚开始学习EDIUS视频编辑软件的同学吗?你们是否需要一本很好的EDIUS教程呢?你们可以到EDIUS中文网站里面找哦,小编会一直更新EDIUS教程的,能给你们带来帮助我是非常高兴的.今天我们来一起 ...

  6. mui适用场景说明,能不能在普通浏览器里使用,能否用于wap网站

    mui适用场景说明 为解决HTML5在低端Android机上的性能缺陷,mui引入了原生加速,其中最关键的就是webview控件,因此mui若要发挥其全部能力,需和5+ App配合适用,若脱离5+ A ...

  7. 27个知名企业品牌VI视觉识别系统规范手册

    Apple公司视觉设计规范 微软公司VI视觉系统 星巴克企业视觉规范手册 DELL品牌VI视觉手册 MTRADING品牌视觉规范 KFC视觉设计规范手册 麦当劳视觉规范 LEGO乐高玩具的品牌视觉规范 ...

  8. Spring MVC中使用 Swagger2 构建Restful API

    1.Spring MVC配置文件中的配置 [java] view plain copy <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <contex ...

  9. WeX5之xid相关API

    WeX5针对xid提供了以下js api: 1.根据xid获取id:this.getIDByXID(xid): 2.根据xid获取HTML节点:this.getElementByXid(xid),此a ...

  10. Eclipse 配置Maven

    Eclipse 配置Maven 下载Maven 首先在官网下载Maven:http://maven.apache.org/download.cgi 下载后将其解压到相应的位置 配置Maven环境变量 ...