本文共 2647 字,大约阅读时间需要 8 分钟。
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[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>**今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津**
转载于:https://blog.51cto.com/14068656/2384899