sort

排序文本文件.
对文件(或标准输入)中的所有行进行排序,合并或比较

语法

  sort [options] [file...]
  sort --help
  sort --version

选项


    sort有三种操作模式:
     排序(默认), 合并(-m), 检查(-c)

   -c    检查文件是否已经排序

   -m    通过将文件作为一个组进行排序来合并它们


以下选项会影响输出行的顺序。它们可以全局指定,也可以作为特定键字段的一部分指定。
如果未指定关键字段,则全局选项适用于整行的比较; 否则全局选项将由未指定其自身的任何特殊选项的关键字段继承。 
`-b',`-d',`-f'和`-i'选项根据`LC_CTYPE'语言环境对字符进行分类


  -b
     忽略每行前面开始出的空格字符。

  -d
     按“电话号码簿”顺序排序:在排序时,请忽略除etters、numbers和blank之外的所有字符

  -f
     在排序时,将小写字符折成等效的大写字符,这样,例如,' b'和' B'排序就相等了

  -g
     通过数字排序,使用标准的C函数“strtod”将每行的前缀转换为双精度浮点数。
     这允许在科学符号中指定浮点数,比如“1.0 -34”和“10e100”。
     不要报告溢出、下溢或转换错误。使用以下整理顺序:

        * 不以数字开头的行(都被认为是相等的)

        * NaNs(在IEEE浮点算法中,“不是一个数字”值)以一致但依赖于机器的顺序出现

        * 负无穷.

        * 按升序排列的有限数字(-0和+0 相等)

        * +∞.

        只有在别无选择时才使用此选项;它比' -n'慢得多,在转换为浮点数时可能会丢失信息。

  -i
     忽略不可打印的字符

  -M
     将前面3个字母依照月份的缩写进行排序。

  -n
     依照数值的大小排序

  -r
     以相反的顺序来排序

  -o OUTPUT-FILE
    将排序后的结果存入指定的文件

  -t SEPARATOR
     指定排序时所用的栏位分隔字符。

  -u
     对于默认情况或`-m'选项,仅输出
     比较相等行中的第一行。对于`-c'选项,
     检查没有比较相等的一对连续行。

  -k POS1[,POS2]
     推荐的POSIX选项,用于指定排序字段

  -z
     将输入视为一组行,每行以零字节
     (ASCII NUL(空)字符)结束

`+POS1[-POS2]
     指定排序字段的过时的、传统的选项。
     字段由POS1和up to but _not之间的行组成
     包含_pos2(如果省略POS2,则包含行尾)。
     字段和字符位置以0开头编号。

  --help  显示帮助

  --version 显示版本信息


例子

字符排序:

$ sort countries.txt 

数字排序:

$ sort -n numbers.txt

要在第三个字段(邮编)上对下面的文件进行排序:

Jim Alchin 212121 Seattle
Bill Gates 404404 Seattle
Steve Jobs 246810 Nevada 
Scott Neally 212277 Los Angeles

$ sort -k 3,3 people.txt> sorted.txt

或使用’old’语法:

 $ sort +2 -3 people.txt> sorted2.txt

要对第4列上的同一文件进行排序并扣除重复项:(应该返回3行)

 $ sort -u -k 4,4 people.txt> sorted3.txt

在其余的示例中,POSIX-k'选项用于指定排序键而不是过时的+ POS1-POS2’语法

按降序(反向)数字顺序:

$ sort -nr

按字母顺序排序,省略第一个和第二个字段。这
使用单个键,由从
字段3的开头开始并延伸到每行结尾的字符组成:

$ sort -k3

在第二个字段上以数字方式排序,并通过
在字段5的第三个和第四个字符上按字母顺序排序来解析关系。
使用`:'作为字段分隔符:

$ sort -t : -k 2,2n -k 5.3,5.4

在第五个字段上对密码文件进行排序,并忽略任何前导空格。
在字段3中的数字用户ID的字段5中对具有相等值的行进行排序:

$ sort -t : -k 5b,5 -k 3,3n /etc/passwd

另一种方法是使用全局数字修饰符`-n’:

$ sort -t : -n -k 5b,5 -k 3,3 /etc/passwd

以不区分大小写的顺序生成标签文件:

$ find src -type f -print0 | sort -t / -z -f | xargs -0 etags --append

在这种情况下使用-print0',-z’和`-0’意味着包含换行符的路径名不会被排序操作分解。

最后,要忽略前导和尾随空格,可以将`b’修饰符应用于第一个键的field-end说明符,

$ sort -t : -n -k 5b,5b -k 3,3 /etc/passwd

或者使用全局-b'修饰符而不是-n’和
使用第二个键说明符的显式`n:

$ sort -t : -b -k 5,5 -k 3,3n /etc/passwd

文件名“ - ”表示标准输入.
默认情况下,sort将结果写入标准输出

sort 命令实例:

linux命令:sort ~/.bash_history|uniq -c|sort -n|tail -n 10 10 -n -n|tail -c|sort ~/.bash_history|uniq sort sort ~/.bash_history|uniq -c|sort -n|tail -n 10rootopen.com
linux命令:sort ~/.bash_history|uniq -c|sort -n|tail -n 10 10 -n -n|tail -c|sort ~/.bash_history|uniq sort sort ~/.bash_history|uniq -c|sort -n|tail -n 10rootopen.com
2019-06-04 22:20:41

linux命令:sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 /file/of/ip/addresses /file/of/ip/addresses 4,4 -k 3,3 -k 2,2 -k 1,1 -k . -t -n sort sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 /file/of/ip/addressesrootopen.com
linux命令:sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 /file/of/ip/addresses /file/of/ip/addresses 4,4 -k 3,3 -k 2,2 -k 1,1 -k . -t -n sort sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 /file/of/ip/addressesrootopen.com
2018-02-10 06:07:48

linux命令:sort -bdf -bdf sort sort -bdfrootopen.com
linux命令:sort -bdf -bdf sort sort -bdfrootopen.com
2018-04-13 12:07:48

linux命令:sort -nt . -k 1,1 -k 2,2 -k 3,3 -k 4,4 4,4 -k 3,3 -k 2,2 -k 1,1 -k . -nt sort sort -nt . -k 1,1 -k 2,2 -k 3,3 -k 4,4rootopen.com
linux命令:sort -nt . -k 1,1 -k 2,2 -k 3,3 -k 4,4 4,4 -k 3,3 -k 2,2 -k 1,1 -k . -nt sort sort -nt . -k 1,1 -k 2,2 -k 3,3 -k 4,4rootopen.com
2018-05-22 01:26:48

linux命令:sort file1.txt | uniq > file2.txt file2.txt > uniq | file1.txt sort sort file1.txt | uniq > file2.txtrootopen.com
linux命令:sort file1.txt | uniq > file2.txt file2.txt > uniq | file1.txt sort sort file1.txt | uniq > file2.txtrootopen.com
2018-03-15 04:43:48

linux命令:sort -u filename > newfilename newfilename > filename -u sort sort -u filename > newfilenamerootopen.com
linux命令:sort -u filename > newfilename newfilename > filename -u sort sort -u filename > newfilenamerootopen.com
2018-01-18 15:17:48

linux命令:sort -n <( for i in $(find . -maxdepth 1 -mindepth 1 -type d); do echo $(find $i | wc -l) ": $i"; done;) done;) $i"; ": -l) wc | $i $(find echo do d); -type 1 -mindepth 1 -maxdepth . $(find in i for <( -n sort sort -n <( for i in $(find . -maxdepth 1 -mindepth 1 -type d); do echo $(find $i | wc -l) ": $i"; done;)rootopen.com
linux命令:sort -n <( for i in $(find . -maxdepth 1 -mindepth 1 -type d); do echo $(find $i | wc -l) ": $i"; done;) done;) $i"; ": -l) wc | $i $(find echo do d); -type 1 -mindepth 1 -maxdepth . $(find in i for <( -n sort sort -n <( for i in $(find . -maxdepth 1 -mindepth 1 -type d); do echo $(find $i | wc -l) ": $i"; done;)rootopen.com
2018-05-09 08:51:48

linux命令:sort -k1.x -k1.x sort sort -k1.xrootopen.com
linux命令:sort -k1.x -k1.x sort sort -k1.xrootopen.com
2018-03-07 06:08:48

linux命令:sort -R file.txt | head -1 -1 head | file.txt -R sort sort -R file.txt | head -1rootopen.com
linux命令:sort -R file.txt | head -1 -1 head | file.txt -R sort sort -R file.txt | head -1rootopen.com
2018-06-11 09:51:48

linux命令:sort -t. -k1,1n -k2,2n -k3,3n -k4,4n -k4,4n -k3,3n -k2,2n -k1,1n -t. sort sort -t. -k1,1n -k2,2n -k3,3n -k4,4nrootopen.com
linux命令:sort -t. -k1,1n -k2,2n -k3,3n -k4,4n -k4,4n -k3,3n -k2,2n -k1,1n -t. sort sort -t. -k1,1n -k2,2n -k3,3n -k4,4nrootopen.com
2018-02-26 17:44:48

linux命令:sortwc () { local L;while read -r L;do builtin printf "${#L}@%s\n" "$L";done|sort -n|sed -u 's/^[^@]*@//'; } } 's/^[^@]*@//'; -u -n|sed "$L";done|sort "${#L}@%s\n" printf builtin L;do -r read L;while local { () sortwc sortwc () { local L;while read -r L;do builtin printf "${#L}@%s\n" "$L";done|sort -n|sed -u 's/^[^@]*@//'; }rootopen.com
linux命令:sortwc () { local L;while read -r L;do builtin printf "${#L}@%s\n" "$L";done|sort -n|sed -u 's/^[^@]*@//'; } } 's/^[^@]*@//'; -u -n|sed "$L";done|sort "${#L}@%s\n" printf builtin L;do -r read L;while local { () sortwc sortwc () { local L;while read -r L;do builtin printf "${#L}@%s\n" "$L";done|sort -n|sed -u 's/^[^@]*@//'; }rootopen.com
2018-02-28 14:07:48

linux命令:sort file1 file2 | uniq -d -d uniq | file2 file1 sort sort file1 file2 | uniq -drootopen.com
linux命令:sort file1 file2 | uniq -d -d uniq | file2 file1 sort sort file1 file2 | uniq -drootopen.com
2017-12-27 15:29:48

linux命令:sort -t $'\t' -k 2 input.txt input.txt 2 -k $'\t' -t sort sort -t $'\t' -k 2 input.txtrootopen.com
linux命令:sort -t $'\t' -k 2 input.txt input.txt 2 -k $'\t' -t sort sort -t $'\t' -k 2 input.txtrootopen.com
2018-04-25 07:51:48

linux命令:sort -R SOMEFILE SOMEFILE -R sort sort -R SOMEFILErootopen.com
linux命令:sort -R SOMEFILE SOMEFILE -R sort sort -R SOMEFILErootopen.com
2018-03-04 19:30:48

linux命令:sort_csn () { echo "${1}" | sed -e "s/,/\n/g"| sort -nu | awk '{printf("%s,",$0)} END {printf("\n")}' | sed -e "s/,$//"; } } "s/,$//"; -e sed | {printf("\n")}' END '{printf("%s,",$0)} awk | -nu sort "s/,/\n/g"| -e sed | "${1}" echo { () sort_csn sort_csn () { echo "${1}" | sed -e "s/,/\n/g"| sort -nu | awk '{printf("%s,",$0)} END {printf("\n")}' | sed -e "s/,$//"; }rootopen.com
linux命令:sort_csn () { echo "${1}" | sed -e "s/,/\n/g"| sort -nu | awk '{printf("%s,",$0)} END {printf("\n")}' | sed -e "s/,$//"; } } "s/,$//"; -e sed | {printf("\n")}' END '{printf("%s,",$0)} awk | -nu sort "s/,/\n/g"| -e sed | "${1}" echo { () sort_csn sort_csn () { echo "${1}" | sed -e "s/,/\n/g"| sort -nu | awk '{printf("%s,",$0)} END {printf("\n")}' | sed -e "s/,$//"; }rootopen.com
2018-01-22 01:18:48

linux命令:sort -t"," -n -k5 file.csv # according to the 5th field NUMERICALLY!! NUMERICALLY!! field 5th the to according # file.csv -k5 -n -t"," sort sort -t"," -n -k5 file.csv # according to the 5th field NUMERICALLY!!rootopen.com
linux命令:sort -t"," -n -k5 file.csv # according to the 5th field NUMERICALLY!! NUMERICALLY!! field 5th the to according # file.csv -k5 -n -t"," sort sort -t"," -n -k5 file.csv # according to the 5th field NUMERICALLY!!rootopen.com
2018-03-07 21:49:48

linux命令:sort -u < /sys/class/net/*/address /sys/class/net/*/address < -u sort sort -u < /sys/class/net/*/addressrootopen.com
linux命令:sort -u < /sys/class/net/*/address /sys/class/net/*/address < -u sort sort -u < /sys/class/net/*/addressrootopen.com
2018-03-22 04:24:48

linux命令:sort -R -R sort sort -Rrootopen.com
linux命令:sort -R -R sort sort -Rrootopen.com
2018-01-12 21:45:48

linux命令:sort -R /usr/share/dict/british | grep -v -m4 ^\{1,10\}$ | tr [:upper:] [:lower:] | tr "\n" " " | tr -d "'s" | xargs -0 echo echo -0 xargs | "'s" -d tr | " " "\n" tr | [:lower:] [:upper:] tr | ^\{1,10\}$ -m4 -v grep | /usr/share/dict/british -R sort sort -R /usr/share/dict/british | grep -v -m4 ^\{1,10\}$ | tr [:upper:] [:lower:] | tr "\n" " " | tr -d "'s" | xargs -0 echorootopen.com
linux命令:sort -R /usr/share/dict/british | grep -v -m4 ^\{1,10\}$ | tr [:upper:] [:lower:] | tr "\n" " " | tr -d "'s" | xargs -0 echo echo -0 xargs | "'s" -d tr | " " "\n" tr | [:lower:] [:upper:] tr | ^\{1,10\}$ -m4 -v grep | /usr/share/dict/british -R sort sort -R /usr/share/dict/british | grep -v -m4 ^\{1,10\}$ | tr [:upper:] [:lower:] | tr "\n" " " | tr -d "'s" | xargs -0 echorootopen.com
2018-01-31 14:21:48

linux命令:sort -g -o list.txt{,} list.txt{,} -o -g sort sort -g -o list.txt{,}rootopen.com
linux命令:sort -g -o list.txt{,} list.txt{,} -o -g sort sort -g -o list.txt{,}rootopen.com
2018-06-11 06:52:48

linux命令:sort -M filename filename -M sort sort -M filenamerootopen.com
linux命令:sort -M filename filename -M sort sort -M filenamerootopen.com
2018-01-23 13:59:48

linux命令:sort --random-sort file file --random-sort sort sort --random-sort filerootopen.com
linux命令:sort --random-sort file file --random-sort sort sort --random-sort filerootopen.com
2018-05-13 16:21:48

linux命令:sort -t: -k 2 names.txt names.txt 2 -k -t: sort sort -t: -k 2 names.txtrootopen.com
linux命令:sort -t: -k 2 names.txt names.txt 2 -k -t: sort sort -t: -k 2 names.txtrootopen.com
2018-06-08 00:57:48

linux命令:sort namesd.txt | uniq uniq | namesd.txt sort sort namesd.txt | uniqrootopen.com
linux命令:sort namesd.txt | uniq uniq | namesd.txt sort sort namesd.txt | uniqrootopen.com
2018-01-23 01:30:48

linux命令:sort namesd.txt | uniq ?cd ?cd uniq | namesd.txt sort sort namesd.txt | uniq ?cdrootopen.com
linux命令:sort namesd.txt | uniq ?cd ?cd uniq | namesd.txt sort sort namesd.txt | uniq ?cdrootopen.com
2018-01-18 08:26:48

linux命令:sort file.txt | uniq -c | sort -k1nr -k2d -k2d -k1nr sort | -c uniq | file.txt sort sort file.txt | uniq -c | sort -k1nr -k2drootopen.com
linux命令:sort file.txt | uniq -c | sort -k1nr -k2d -k2d -k1nr sort | -c uniq | file.txt sort sort file.txt | uniq -c | sort -k1nr -k2drootopen.com
2018-05-07 08:01:48

linux命令:sort in-file.txt | uniq -u > out-file.txt out-file.txt > -u uniq | in-file.txt sort sort in-file.txt | uniq -u > out-file.txtrootopen.com
linux命令:sort in-file.txt | uniq -u > out-file.txt out-file.txt > -u uniq | in-file.txt sort sort in-file.txt | uniq -u > out-file.txtrootopen.com
2018-06-11 23:41:48

linux命令:sort -s -b -t' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n access.log* access.log* 4.20,4.21n -k 4.17,4.18n -k 4.14,4.15n -k 4.2,4.3n -k 4.5,4.7M -k 4.9,4.12n -k ' -t' -b -s sort sort -s -b -t' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n access.log*rootopen.com
linux命令:sort -s -b -t' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n access.log* access.log* 4.20,4.21n -k 4.17,4.18n -k 4.14,4.15n -k 4.2,4.3n -k 4.5,4.7M -k 4.9,4.12n -k ' -t' -b -s sort sort -s -b -t' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n access.log*rootopen.com
2018-05-14 06:01:48

linux命令:sort -V ~/ip.txt ~/ip.txt -V sort sort -V ~/ip.txtrootopen.com
linux命令:sort -V ~/ip.txt ~/ip.txt -V sort sort -V ~/ip.txtrootopen.com
2018-03-27 04:39:48

Linux的Bash命令行(A-Z排序)