sort和uniq的应用实例
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的应用实例的更多相关文章
- sort +awk+uniq 统计文件中出现次数最多的前10个单词
实例cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 统计文件中出现次数最多的前10个单 ...
- Linux中sort和uniq关于排序去重的那些用法
相信在Linux下对文件操作经常会用到sort和uniq命令,下面系统的介绍一下这两个命令的用法. sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出.sort命令既可以从特 ...
- sort、uniq、tr、cut、eval以及正则表达式
sort.uniq.tr.cut.eval以及正则表达式 目录 sort.uniq.tr.cut.eval以及正则表达式 一.sort命令 1. sort的作用 2. 语法格式 3. 常用选项 4. ...
- 每天学点linux命令--tail,cut,sort,uniq
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- Shell命令-文件及内容处理之sort、uniq
文件及内容处理 - sort.unip 1. sort:对文件的文本内容排序 sort命令的功能说明 sort 命令用于将文本文件内容加以排序.sort 可针对文本文件的内容,以行为单位来排序. so ...
- sort与uniq命令详解
1.sort的作用 (排序) sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出. 如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行 ...
- sort和uniq去重操作【转】
去除重复行 sort file |uniq 查找非重复行 sort file |uniq -u 查找重复行 sort file |uniq -d 统计 sort file | uniq - ...
- linux之sort和uniq
uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...
- linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解
一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...
随机推荐
- node-inspector调试工具
1. npm或者cnpm 安装node-inspector 命令: cnpm install -g node-inspector (说明: 全局安装) 2. 使用node-inspect ...
- Excel 2007 底层实现方式
一.EXCEL的底层实现 能力有限,了解的比较浅,有不足之处望指正,首先看下图: 一. excel2007是使用xml格式来存储的,把一个excel文件后缀改为.zip,打开之后就直接可以看到一个ex ...
- 3.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——检查文件开始与结尾
检查文件两个互补的命令是head 和tail, 它们分别用于查看文件的开始(头部)和结束(尾部).head命令展示了文件的前10行.(Listing 11). ##Listing 11: 查看示例文件 ...
- Luogu4774 NOI2018 屠龙勇士 ExCRT
传送门 原来NOI也会出裸题啊-- 用multiset求出对付每一个BOSS使用的武器威力\(ATK_i\),可以得到\(m\)个式子\(ATK_ix \equiv a_i \mod p_i\) 看起 ...
- ( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法
Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm ...
- VB6 变量定义作用域的一个奇特形式
C#或JAVA 下面的i定义是只会限定在if 条件块里的: if (1 == 2) { int i = 000; } else { i = 111;// 错误,未定义. } i = 222;//错误 ...
- Linux下安装解压版(tar.gz)MySQL5.7
最近尝试在Linux中安装了解压版MySQL,期间查阅了许多博客.很多博客看得我很懵逼,因此记录下自己的安装过程,方便后续查阅. 环境说明:CentOs7.2 一.清理 ...
- [转]Linux下安装Java环境配置步骤详述
1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择 ...
- 【工作感悟】Android 开发者,如何提升自己的职场竞争力?
前言 该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下. 开始 大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇.现场的氛围也让我十分激动. ...
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [三] 配置式爬虫
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 上一篇介绍的基本的使用方式,自由度很高,但是编写的代码相对 ...