linux 中 sort命令 -k选项
sort -k选项用于指定按照哪一列进行排序。
001、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 1 facebook.txt ## 按照第一列的第一个字符排序 baidu 100 5000 google 110 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2 facebook.txt ## 按照第二列的第一个字符排序 sohu 100 4500 baidu 100 5000 google 110 5000 guge 50 3000 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 3 facebook.txt ## 按照第三列的第一个字符排序 guge 50 3000 sohu 100 4500 baidu 100 5000 google 110 5000
002、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2n facebook.txt ## 第二列按照整数值排序 guge 50 3000 baidu 100 5000 sohu 100 4500 google 110 5000 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2n -k 3n facebook.txt ## 第二列、第三列依次按照整数值排序 guge 50 3000 sohu 100 4500 baidu 100 5000 google 110 5000 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2n -k 1 facebook.txt ## guge 50 3000 baidu 100 5000 sohu 100 4500 google 110 5000
003、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 1 facebook.txt ## 按照第一列排序 baidu 100 5000 google 110 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 1.2 facebook.txt ## 按照第一列的第二个字符排序 baidu 100 5000 sohu 100 4500 google 110 5000 guge 50 3000 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 1.3 facebook.txt ## 按照第一列的第三个字符排序 guge 50 3000 sohu 100 4500 baidu 100 5000 google 110 5000
004、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 1.2 facebook.txt ## 按照第一列的第2个字符排序 baidu 100 5000 sohu 100 4500 google 110 5000 guge 50 3000 root@DESKTOP-1N42TVH:/home/test5/test# sort -t " " -k 1.2 -k 3.2 facebook.txt ## 按照第一列的第2个字符排序 baidu 100 5000 sohu 100 4500 google 110 5000 guge 50 3000 root@DESKTOP-1N42TVH:/home/test5/test# sort -t " " -k 1.2,1.2 -k 3.2 facebook.txt ## 按照第一列的第二个字符排序,然后按照第3列的第2个字符排序 baidu 100 5000 google 110 5000 sohu 100 4500 guge 50 3000
005、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2 facebook.txt ## 从第二个与开始排序 sohu 100 4500 baidu 100 5000 google 110 5000 guge 50 3000 root@DESKTOP-1N42TVH:/home/test5/test# sort -k 2,2 facebook.txt ## 从第二个与开始排序,到第二个域结束,然后从头排序 baidu 100 5000 sohu 100 4500 google 110 5000 guge 50 3000
006、
root@DESKTOP-1N42TVH:/home/test5/test# ls facebook.txt root@DESKTOP-1N42TVH:/home/test5/test# cat facebook.txt google 110 5000 baidu 100 5000 guge 50 3000 sohu 100 4500 root@DESKTOP-1N42TVH:/home/test5/test# sort -t " " -k 2n,2n facebook.txt ## 按照数值,从第二个域开始到第二个域结束进行排序,然后从头开始排序 guge 50 3000 baidu 100 5000 sohu 100 4500 google 110 5000 root@DESKTOP-1N42TVH:/home/test5/test# sort -t " " -k 2n,2n -k 3n,3n facebook.txt ## 先按照第二个域按照数值排序,然后第三个域数值进行排序,然后从头排序 guge 50 3000 sohu 100 4500 baidu 100 5000 google 110 5000