在工作中经常用到sort命令,sort和uniq命令一起使用,来排序文档。这里详细的介绍sort/uniq的用法。
1, -u/--unique 起到uniq命令的作用,删除重复行,只留一个。
sort -u test
2, -r/--reverse 降序排列。
sort -r test
3, -o/--output=FILE, 重定向。sort输出默认是标准输出。重定向时,我们可以用>,>>重定向排序后的文件。但是,如果要重定向到原文件,则>,>>不能胜任了,这时候需要用-o/--output=FILE。例如:
sort -r number.txt -o number.txt
4, -n/--numeric-sort, 经常用在只有数字字符的文档,sort默认会把数字当作字符排序。加上-n则把字符当作数字排序。例如:
sort -n number.txt
5, -t/--field-separator=SEP, -k/--key=POS1[,POS2]
-n单独使用闲置多多,因为有时候数字是镶嵌在字符里的。这时候,我们可以用-t和-k分割指定排序。例如:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
6, -h/--human-numeric-sort,这个选项类似df -h, ls -h等命令的参数,适合有单位的数值比较。例如:
[nanhuang@nanhuang ~]$ cat tt.txt
200K
2G
1000M
[nanhuang@nanhuang ~]$ sort -h tt.txt
200K
1000M
2G
7, -i/--ignore-nonprinting。忽略非打印字符。
8, -M/--month-sort,按照英文月份比较。
[nanhuang@nanhuang ~]$ cat tt.txt
Aprl:1000M:2000
Jan:400G:1000
[nanhuang@nanhuang ~]$ sort -t ':' -k 1 -M tt.txt
Jan:400G:1000
Aprl:1000M:2000