Shell命令-文件及内容处理之sort、uniq
时间:2019-04-20
本文章向大家介绍Shell命令-文件及内容处理之sort、uniq,主要包括Shell命令-文件及内容处理之sort、uniq使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文件及内容处理 - sort、unip
1. sort:对文件的文本内容排序
sort命令的功能说明
sort
命令用于将文本文件内容加以排序。sort
可针对文本文件的内容,以行为单位来排序。
sort命令的语法格式
sort
[OPTION]... [FILE]...
sort
[-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
sort命令的常用参数说明:
split
参数很多,表1为sort
命令的参数及说明:
表1:
sort
命令的参数及说明
参数选项 | 解释说明 |
---|---|
-b | 忽略每行前面开始出的空格字符。 |
-c | 检查文件是否已经按照顺序排序。 |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 |
-f | 排序时,将小写字母视为大写字母。 |
-i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 |
-m | 将几个排序好的文件进行合并。 |
-M | 将前面3个字母依照月份的缩写进行排序。 |
-n | 依照数值的大小排序。 |
-o | <输出文件> 将排序后的结果存入指定的文件。 |
-r | 以相反的顺序来排序。 |
-t | <分隔字符> 指定排序时所用的栏位分隔字符。 |
+ | <起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 |
--help | 显示帮助。 |
--version | 显示版本信息。 |
sort命令的实践操作
范例1: 在使用
sort
命令以默认的式对文件的行进行排序,使用的命令如下:
--------------------------------------------------------------
==>testfile文件原有排序 <==
--------------------------------------------------------------
[root@web01 ~]# cat testfile
test 30
Hello 95
Linux 85
--------------------------------------------------------------
==>重排结果<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile
Hello 95
Linux 85
test 30
2. uniq:去除重复行
uniq命令的功能说明
uniq
命令用于检查及删除文本文件中重复出现的行列,一般与sort
命令结合使用。uniq
可检查文本文件中重复出现的行列。
uniq命令的语法格式
uniq
[OPTION]... [INPUT [OUTPUT]]
uniq
[-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
uniq命令的常用参数说明:
uniq
参数不多,表1为uniq
命令的参数及说明:
表1:
uniq
命令的参数及说明
参数选项 | 解释说明 |
---|---|
-c或--count | 在每列旁边显示该行重复出现的次数。 |
-d或--repeated | 仅显示重复出现的行列。 |
-f<栏位>或--skip-fields=<栏位> | 忽略比较指定的栏位。 |
-s<字符位置>或--skip-chars=<字符位置> | 忽略比较指定的字符。 |
-u或--unique | 仅显示出一次的行列。 |
-w<字符位置>或--check-chars=<字符位置> | 指定要比较的字符。 |
--help | 显示帮助。 |
--version | 显示版本信息。 |
[输入文件] | 指定已排序好的文本文件。如果不指定此项,则从标准读取数据; |
[输出文件] | 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。 |
uniq命令的实践操作
范例1: 文件testfile中第 2、3、5、6、7、9行为相同的行,使用
uniq
命令删除重复的行,可使用以下命令:
--------------------------------------------------------------
==>原有内容 <==
--------------------------------------------------------------
[root@web01 ~]# cat testfile
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85
--------------------------------------------------------------
==>删除重复行后的内容<==
--------------------------------------------------------------
[root@web01 ~]# uniq testfile
test 30
Hello 95
Linux 85
范例2: 检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:
[root@web01 ~]# uniq -c testfile <-->删除重复行后的内容
3 test 30 <-->前面的数字的意义为该行共出现了3次
4 Hello 95 <-->前面的数字的意义为该行共出现了4次
2 Linux 85 <-->前面的数字的意义为该行共出现了2次
范例3: 当重复的行并不相邻时,
uniq
命令是不起作用的,即若文件内容为以下时,uniq
命令不起作用:
--------------------------------------------------------------
==>原有内容 <==
--------------------------------------------------------------
[root@web01 ~]# cat testfile1
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85
--------------------------------------------------------------
==>这时我们就可以使用 sort<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile1 | uniq
Hello 95
Linux 85
test 30
--------------------------------------------------------------
==>统计各行在文件中出现的次数:<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile1 | uniq -c
3 Hello 95
3 Linux 85
3 test 30
--------------------------------------------------------------
==>在文件中找出重复的行:<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile1 | uniq -d
Hello 95
Linux 85
test 30
今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】
- Enterprise Library深入解析与灵活应用(7):再谈PIAB与Unity之间的集成
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(39)-在线人数统计探讨
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
- .Net 转战 Android 4.4 日常笔记(10)--PullToRefresh下拉刷新使用
- .Net 转战 Android 4.4 日常笔记(10)--ADT集成环境更新SDK
- Windows Server 2008R2 配置网络负载平衡(NLB)
- .Net 转战 Android 4.4 日常笔记(9)--常用组件的使用方法[附源码]
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(38)-Easyui-accordion+tree漂亮的菜单导航
- .Net 转战 Android 4.4 日常笔记(8)--常见事件响应及实现方式
- silverlight于javascript通信
- 微信上线小游戏:对流量基础入口应用商店革命
- Appium Desktop 使用
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(36)-文章发布系统③-kindeditor使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法