sort命令
sort命令通常用来排序,命令的一些常见用法:
命令用法 | 说明 |
---|---|
sort -n | 纯数字排序 |
sort -r | 倒叙 |
sort -u | 去掉重复数字 |
sort -o | 输出到指定文件中 |
sort -t | 指定分隔符 |
sort -k | 指定要排序的列 |
sort -rn | 反向纯数字排序 |
sort -rn numbers -o file | 反向纯数字排序并将结果输出到文件中 |
sort -urn numbers | 去掉重复数字纯数字反向排序 |
以上命令参数可以自由组合,示例:
[root@100 Desktop]# vim numbers
[root@100 Desktop]# cat numbers
1
3
5
34
10
2
1
5
1
1
[root@100 Desktop]# sort numbers #默认是正向排序,而且是对每行的第一个单个数字进行排序
1
1
1
1
10
2
3
34
5
5
[root@100 Desktop]# sort -n numbers #-n 表示纯数字排序
1
1
1
1
2
3
5
5
10
34
[root@100 Desktop]# sort -r numbers # -r 表示反向排序,也是对每行的第一个单个数字排序
5
5
34
3
2
10
1
1
1
1
[root@100 Desktop]# sort -rn numbers #反向纯数字排序
34
10
5
5
3
2
1
1
1
1
[root@100 Desktop]# sort -rn numbers -o NUM #-o 指定输出文件
[root@100 Desktop]# cat NUM
34
10
5
5
3
2
1
1
1
1
[root@100 Desktop]# sort -u numbers #-u表示unique独一无二的,去掉重复数字
1
10
2
3
34
5
[root@100 Desktop]# sort -urn numbers #去掉重复数字纯数字反向排序
34
10
5
3
2
1
指定分割符和列排序:
[root@100 Desktop]# cat numbers
1:1
2:3
5:5
2:34
22:10
1:2
3:1
2:5
10:1
3:1
#-t 指定分隔符为: -k 指定列 第2列 !!!!!注意,对列进行处理,行内容不会改变
[root@100 Desktop]# sort -t : -k 2 numbers
10:1
1:1
3:1
3:1
22:10
1:2
2:3
2:34
2:5
5:5
#以:为分隔符,对第2列纯数字正向排序
[root@100 Desktop]# sort -t : -k 2 numbers -n
10:1
1:1
3:1
3:1
1:2
2:3
2:5
5:5
22:10
2:34
#以:为分隔符 ,对第一列去掉重复数字之后反序
[root@100 Desktop]# sort -t : -k 1 numbers -rnu
22:10
10:1
5:5
3:1
2:3
1:1
uniq命令
uniq命令可以对重复字符做出相应的处理
命令用法 | 说明 |
---|---|
uniq -u | 显示唯一的行 |
uniq -d | 显示重复的行 |
uniq -c | 每行显示一次并统计重复行数 |
该命令通常和sort命令组合使用:
[root@100 Desktop]# vim numbers
[root@100 Desktop]# cat numbers
1
3
5
34
10
2
1
5
1
1
#进行纯数字排序之后 重复数字只显示一次,并且在左边显示重复次数
[root@100 Desktop]# sort -n numbers | uniq -c
4 1
1 2
1 3
2 5
1 10
1 34
#进行纯数字排序之后显示重复的行
[root@100 Desktop]# sort -n numbers | uniq -d
1
5
#进行纯数字排序之后显示不重复的行
[root@100 Desktop]# sort -n numbers | uniq -u
2
3
10
34