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

 

原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/275265.html

(0)
上一篇 2022年7月18日
下一篇 2022年7月18日

相关推荐

发表回复

登录后才能评论