Linux sort命令

Linux sort命令

Linux sort命令用于将文本文件内容加以排序。

sort可针对文本文件的内容,以行为单位来排序。

语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数说明

 1 -b 忽略每行前面开始出的空格字符。
 2 -c 检查文件是否已经按照顺序排序。
 3 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
 4 -f 排序时,将小写字母视为大写字母。
 5 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
 6 -m 将几个排序好的文件进行合并。
 7 -M 将前面3个字母依照月份的缩写进行排序。
 8 -n 依照数值的大小排序。
 9 -u 意味着是唯一的(unique),输出的结果是去完重了的。
10 -o<输出文件> 将排序后的结果存入指定的文件。
11 -r 以相反的顺序来排序。
12 -t<分隔字符> 指定排序时所用的栏位分隔字符。
13 +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
14 --help 显示帮助。
15 --version 显示版本信息。
 1 -b: ignore-leading-blanks,忽略前面空格符部分
 2 
 3 -d: data-order,仅考虑空格和字母数字字符
 4 
 5 -f: ignore-case,忽略大小写
 6 
 7 -g: general-numeric-sort,根据一般数值进行排序
 8 
 9 -i: ignore-nonprinting,忽略不可打印的字符,比如换行符、回车符
10 
11 -M: month-sort,以月份进行排序
12 
13 -n: numeric-sort,根据字符串数值进行排序
14 -r: reverse,反向输出排序结果
15 -c: check,检查文本是否已排序,如果不是,则输出第一个乱序的行的相关信息,返回1
16 -k N: key,以第N列进行排序
17 -m S1 S2: merge,合并已排序的S1、S2文本,不再排序
18 
19 -o File: output,将结果写入File中
20 
21 -s: stable,通过禁用最后的比较来稳定排序
22 -t sep: field-separator,使用sep作为分隔符来区分列
23 -u: unique,去掉重复的行
24 
25 -z: 零终止的结束行,0字节,而不是换行符

栗子

1 [root@alwen shell]# cat sort.txt 
2 1 mac   2000
3 3 winxp 4000
4 2 linux 1000
5 4 win7 1000
6 2 linux 1000

1. 以数字进行排序

-n 依照数值的大小排序。
1 [root@alwen shell]# sort -n sort.txt  
2 1 mac   2000
3 2 linux 1000
4 2 linux 1000
5 3 winxp 4000
6 4 win7 1000
-g: general-numeric-sort,根据一般数值进行排序
1 [root@alwen shell]# sort -g sort.txt
2 1 mac   2000
3 2 linux 1000
4 2 linux 1000
5 3 winxp 4000
6 4 win7 1000

2. 反向排序

1 [root@alwen shell]# sort -r sort.txt 
2 4 win7 1000
3 3 winxp 4000
4 2 linux 1000
5 2 linux 1000
6 1 mac   2000

3. 以指定列进行排序(以下为第三列)

1 [root@alwen shell]# sort -k3 sort.txt 
2 2 linux 1000
3 2 linux 1000
4 4 win7 1000
5 1 mac   2000
6 3 winxp 4000

4.排序结果去除重复的行

-u: unique,去掉重复的行
1 [root@alwen shell]# sort -u sort.txt 
2 1 mac   2000
3 2 linux 1000
4 3 winxp 4000
5 4 win7 1000

5.合并两个已排序的文本   

-m S1 S2: merge,合并已排序的S1、S2文本,不再排序

 1 [root@alwen shell]# sort -m file  uniq.txt 
 2 192.168.12.1
 3 192.168.12.1
 4 192.168.12.1
 5 192.168.12.1
 6 192.168.12.1
 7 192.168.12.1
 8 192.168.13.1
 9 192.168.13.1
10 192.168.13.1
11 192.168.13.1
12 192.168.13.1
13 192.168.13.1
14 192.168.13.1
15 aaa
16 bbb
17 ccc
18 ddd
19 eee
20 aaa
21 bbb
22 ccc

只是单纯的合并,不会进行排序

转载于:https://www.cnblogs.com/zhumengke/articles/13339205.html

posted @ 2021-06-10 15:07  温家三哥  阅读(187)  评论(0)    收藏  举报