sort 排序 uniq 
1、语法:
sort [option]... [file]...

2、选项:
-k   key,关键子,指定以那个列来排序。如果不指定,默认将正行作为关键字排序
-n   对数值排序。默认bash将所有列值认为是字符串类型,如果想要按照数值来排序使用-n或者修饰符n
-r   倒序排序
-t   指定列的分隔符,默认空格或这tab(制表符)

-k: 指定排序关键字
语法:-k pos1,pos2 -k 3,3 pos1 起始列 pos2结束列
-k 3 定义起始列为第三列,如果第三列相同,则按照第4列排序,以此类推,对比完所有列一样的话,判定两行是相同的
如果,要指定以第三列来排序,写: -k 3,3

根据指定的字符来排序:
语法: -k pos1.start pos2.end
[root@localhost html]# cat /var/log/httpd/access_log.2017-08-28 | sort -k 4.14,4.15(第四列的第14个字符到第四列的第15个字符)

-n: 数值排序
[root@localhost html]# sort -n -k 3,3 sort.txt
The_Hill KL 63 2972
Alien HK 119 1982
Boys_in_Company_C HK 239 2192
Toy_story HK 239 3927
Star_Wars HK 301 4102
A_Few_Good_Men KL 445 5851
Aliens HK 532 4892

[root@localhost html]# sort -k 3,3n sort.txt   //n修饰符  ,按数字排列 等同于 -n
The_Hill KL 63 2972
Alien HK 119 1982
Boys_in_Company_C HK 239 2192
Toy_story HK 239 3927
Star_Wars HK 301 4102
A_Few_Good_Men KL 445 5851
Aliens HK 532 4892

-r 倒序排序

[root@localhost html]# sort -k 3,3nr sort.txt  //等同于-n -r ,按数字倒叙排列
Aliens HK 532 4892
A_Few_Good_Men KL 445 5851
Star_Wars HK 301 4102
Boys_in_Company_C HK 239 2192
Toy_story HK 239 3927
Alien HK 119 1982
The_Hill KL 63 2972

[root@localhost html]# sort -n -r -k 3,3 sort.txt
Aliens HK 532 4892
A_Few_Good_Men KL 445 5851
Star_Wars HK 301 4102
Toy_story HK 239 3927
Boys_in_Company_C HK 239 2192
Alien HK 119 1982
The_Hill KL 63 2972

-t 指定列的分割符号
[root@localhost html]# sort -t ':' -k 3,3n /etc/passwd //分隔符为“:” n数值排序 -k指定排序关键字

-u 去除重复的行

[root@localhost html]# cat sort.txt |sort
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
Alien HK 119 1982
Aliens HK 532 4892
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Star_Wars HK 301 4102
The_Hill KL 63 2972
Toy_story HK 239 3927

[root@localhost html]# cat sort.txt |sort -u
A_Few_Good_Men KL 445 5851
Alien HK 119 1982
Aliens HK 532 4892
Boys_in_Company_C HK 239 2192
Star_Wars HK 301 4102
The_Hill KL 63 2972
Toy_story HK 239 3927

uniq(不加任何选项)就等于sort -u 去除相邻的重复的行
[root@localhost html]# cat sort.txt
Toy_story HK 239 3927
The_Hill KL 63 2972
Star_Wars HK 301 4102
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Aliens HK 532 4892
Alien HK 119 1982
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
[root@localhost html]# cat sort.txt |uniq
Toy_story HK 239 3927
The_Hill KL 63 2972
Star_Wars HK 301 4102
Boys_in_Company_C HK 239 2192
Aliens HK 532 4892
Alien HK 119 1982
A_Few_Good_Men KL 445 5851

uniq只能去除相邻的重复的行:
[root@localhost html]# cat sort.txt
Toy_story HK 239 3927
The_Hill KL 63 2972
Star_Wars HK 301 4102
Boys_in_Company_C HK 239 2192
Aliens HK 532 4892
Boys_in_Company_C HK 239 2192
A_Few_Good_Men KL 445 5851
Alien HK 119 1982
A_Few_Good_Men KL 445 5851
[root@localhost html]# cat sort.txt |uniq
Toy_story HK 239 3927
The_Hill KL 63 2972
Star_Wars HK 301 4102
Boys_in_Company_C HK 239 2192
Aliens HK 532 4892
Boys_in_Company_C HK 239 2192
A_Few_Good_Men KL 445 5851
Alien HK 119 1982
A_Few_Good_Men KL 445 5851

-c count 计数 计算相邻的行的数量,通常先用sort将文本行进行排序(让相同的即重复的行相邻),然后在用uniq -c计算每行出现的重复次数

[root@localhost html]# cat sort.txt |sort
A_Few_Good_Men KL 445 5851
A_Few_Good_Men KL 445 5851
Alien HK 119 1982
Aliens HK 532 4892
Boys_in_Company_C HK 239 2192
Boys_in_Company_C HK 239 2192
Star_Wars HK 301 4102
The_Hill KL 63 2972
Toy_story HK 239 3927

[root@localhost html]# cat sort.txt |sort|uniq -c
2 A_Few_Good_Men KL 445 5851
1 Alien HK 119 1982
1 Aliens HK 532 4892
2 Boys_in_Company_C HK 239 2192
1 Star_Wars HK 301 4102
1 The_Hill KL 63 2972
1 Toy_story HK 239 3927

统计Apache每秒钟的并发量
[root@localhost html]# cat /var/log/httpd/access_log.2017-08-28 | sort -t ' ' -n -k 4.20,4.21 |uniq -c

倒叙输出每秒钟的日志访问量
[root@localhost html]# cat /var/log/httpd/access_log.2017-08-28 | sort |uniq -c|sort -r |head -3

sort和uniq的应用实例的更多相关文章

  1. sort +awk+uniq 统计文件中出现次数最多的前10个单词

    实例cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 统计文件中出现次数最多的前10个单 ...

  2. Linux中sort和uniq关于排序去重的那些用法

    相信在Linux下对文件操作经常会用到sort和uniq命令,下面系统的介绍一下这两个命令的用法. sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出.sort命令既可以从特 ...

  3. sort、uniq、tr、cut、eval以及正则表达式

    sort.uniq.tr.cut.eval以及正则表达式 目录 sort.uniq.tr.cut.eval以及正则表达式 一.sort命令 1. sort的作用 2. 语法格式 3. 常用选项 4. ...

  4. 每天学点linux命令--tail,cut,sort,uniq

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...

  5. Shell命令-文件及内容处理之sort、uniq

    文件及内容处理 - sort.unip 1. sort:对文件的文本内容排序 sort命令的功能说明 sort 命令用于将文本文件内容加以排序.sort 可针对文本文件的内容,以行为单位来排序. so ...

  6. sort与uniq命令详解

    1.sort的作用 (排序) sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出. 如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行 ...

  7. sort和uniq去重操作【转】

    去除重复行 sort file |uniq   查找非重复行 sort file |uniq -u   查找重复行 sort file |uniq -d   统计 sort file | uniq - ...

  8. linux之sort和uniq

    uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...

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

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

随机推荐

  1. pyspider安装完启动报错【connect to scheduler rpc error: error(111, 'Connection refused')】

    调研爬虫框架pyspider有一段时间了,感觉已经比较成熟,跟老板申请了一台机器,打算搭一套正式环境.然而在熟悉的安装步骤过后,启动画面却是这样的: 虽然心中有疑惑,但还是熟练的百度起来.一番搜索之后 ...

  2. ansible详解

    Ansible默认通过 SSH 协议管理机器. 安装Ansible之后不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器 ...

  3. Linux下Samba详解及安装配置

    1.简介 2.安装配置 3.在windows和linux系统上验证 一.简介 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据, ...

  4. java中的SHA单向加密

    SHA全名叫做安全散列算法,是FIPS所认证的安全散列算法.能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法.且若输入的消息不同,它们对应到不同字符串的机率很高. package ...

  5. UVA10720 Graph Construction 度序列可图性

    Luogu传送门(UVA常年上不去) 题意:求一个度序列是否可变换为一个简单图.$\text{序列长度} \leq 10000$ 题目看起来很简单,但是还是有一些小细节需要注意首先一个简单的结论:一张 ...

  6. Java 中 LinkedList 和 ArrayList 的区别

    引自:https://www.cnblogs.com/huzi007/p/5550440.html ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的 ...

  7. Ionic app 通知在Moto 360 Watch上显示通知(1)

    手机与Moto 360 watch配对之后,watch上会接收到微信消息的通知,那么我们就可以利用这个特性开发一个App,在Watch显示我们自己的通知,具体过程如下 1.手机扫描二维码安装ticwa ...

  8. [Oracle]快速构造大量数据的方法

    [Oracle]快速构造大量数据的方法: create table tab001(id integer primary key, val varchar2(100)); insert into tab ...

  9. linux 下隐藏进程的一种方法

    前言 本文所用到的工具在 https://github.com/gianlucaborello/libprocesshider 可以下载 思路就是利用 LD_PRELOAD 来实现系统函数的劫持 LD ...

  10. Spring学习日志之纯Java配置的MVC框架搭建

    依赖引入 <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifa ...