sort-命令
sort
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
英文翻译:sort lines of text files .
格式:
1 | Usage: sort [OPTION]... [FILE]... |
参数:
1 | Ordering options: |
常用参数:
1 | -n 按照数字排序。 |
示例
按照数字正序排序
1 | [root@MySQL /]# sort -n file1.txt |
按照数字排序并倒叙
1 | [root@MySQL /]# sort -nr file1.txt |
按照第二列开始倒叙排序
-t 指定分隔符,-k2 表示按照第二列开始倒叙排序
1 | [root@MySQL /]# sort -t" " -k2 -r file1.txt |
-t 指定分隔符,-k2 表示按照第二列开始排序
1 | [root@MySQL /]# sort -t" " -k2 file1.txt |
先按照第一行排序,在按第三列排序并忽略空格 。
1 | sort -k 1 -n -k 3 emp.data |
-n 参数讲解
测试文件内容
1 | cat info.txt |
第一步 按照第二列倒叙排序
1 | [root@linux-node2 111:33:23]#sort -t ',' -k2r info.txt |
通过结果查看: 是按照第二列的首字母进行排序。
1 | [root@linux-node2 111:33:30]#sort -t ',' -k2nr info.txt |
加上 -n 后将第二列当成了一个整体进行排序。
结论:
- 如果不加-n 默认按照列的第一个首字母排序,如果首字母相同排序第二列。
- 如果加了-n,sort 会将值当成一个整数,而不是按照首字母排序。