很多时候Linux需要对文本相对比较规范的文本数据进行排序,这时候可以使用Linux系统下的sort命令进行处理。
语法格式:sort [-ntkr] filename
常用参数:
-n 根据数字进行排序
-t 指定的分隔符
-k 指定分隔符的第几列
-r 降序排序
用法示例:
先创建一个sort.txt的文本文件,表示各科的成绩,内容如下:
a 98 80 100 95
d 88 99 95 82
b 89 83 80 100
c 60 98 79 90
cat sort.txt | sort #默认会按照第一列进行排序
输出结果:
a 98 80 100 95
b 89 83 80 100
c 60 98 79 90
d 88 99 95 82
cat sort.txt | sort -n -k 2 #按照第二列进行排序
输出结果:
c 60 98 79 90
d 88 99 95 82
b 89 83 80 100
a 98 80 100 95
cat sort.txt | sort -n -t " " -k 3 -r
#按照第三列进行、指定分割符为空格、降序排序
d 88 99 95 82
c 60 98 79 90
b 89 83 80 100
a 98 80 100 95
注意:如果不加-n 参数,Linux默认会按照排序列第一个字符进行排序,比如21和3如果不加-n参数的话,系统会按照21第一个字符2和3比较,如果升序的化21会在3的前面,所有如果是数字的排序,必须要加上-n参数,从而保证排序的正确性。