sort是Linux命令,主要用于排序文件、对已排序的文件进行合并,并检查文件以确定它们是否已排序。
语法
对当前文件夹文件排序(默认):
bash-4.1$ ls -l | sort drwxr-xr-x. 2 root root 4096 Nov 9 12:33 conf -rw-r--r--. 1 root root 1498 Nov 9 12:33 dubbo-consumer.xml -rw-r--r--. 1 root root 2146 Nov 9 12:33 task-config.xml -rw-r--r--. 1 root root 3008 Nov 9 12:33 logback.xml -rw-r--r--. 1 root root 467 Nov 9 12:33 task.properties -rw-r--r--. 1 root root 567 Nov 9 12:33 root-bean.xml
-bash-4.1$ ls -l | awk '{print $5}' | sort -n 467 567 1498 2146 3008 4096
-bash-4.1$ ls -l | sort -n -k5 total 24 -rw-r--r--. 1 root root 467 Nov 9 12:33 task.properties -rw-r--r--. 1 root root 567 Nov 9 12:33 root-bean.xml -rw-r--r--. 1 root root 1498 Nov 9 12:33 dubbo-consumer.xml -rw-r--r--. 1 root root 2146 Nov 9 12:33 task-config.xml -rw-r--r--. 1 root root 3008 Nov 9 12:33 logback.xml drwxr-xr-x. 2 root root 4096 Nov 9 12:33 conf
-bash-4.1$ ls -l | awk '{print $2}' | sort -n -u 1 2 24
-bash-4.1$ ls -l | awk '{print $2}' | sort -r -u 24 2 1
[rocrocket@rocrocket programming]$ sort -r sample.txt -o sample [rocrocket@rocrocket programming]$ cat sample.txt 5 4 3 2 1
[rocrocket@rocrocket programming]$ sort -n -k 2 -t ‘:’ sample.txt 10:2.5 20:3.4 30:4.5 90:5.3
其他的sort常用选项
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-M会以月份来排序,比如JAN小于FEB等等
-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。