sort命令
sort将文件的每一行作为单位进行比较,默认(不加任何选项)是以每行的首字符向后依次按其ASCII码进行比较,最后按升序输出,执行命令后不改变源文件的内容
#常见的选项
默认------->按升序输出
-r ----------->降序输出
-n ----------->按数值进行排序
如果不加-n选项,那么还是按照字符的ASCII比较,加了就按照数值比较
-u ----------->将排序中重复的行去掉
单独使用-u去重选项是指去掉完全相同的行
若需要去重不完全相同的的行中带有相同的列,需要结合其他选项,指定列去重
-o ----------->将排序后的结果写入其他文件
sort命令执行完后默认将结果输出到屏幕上,若需要输出到文件里,在执行命令的后面加 -o 文件名
exp:sort -u file.txt -o result.txt
保存的文件存在则直接将结果覆盖里面的内容,不存在则创建
组合选项,比较重要,针对文件中一行有多列的情况,想按照某一列的字段进行用以下选项
sort -t '分隔符' -k 指定列数(数字) 文件名
分隔符:一般是空格,制表符,冒号,逗号等符号
指定列数:代表第几列,没有第0列,若只写一列数字,若域的数值相同,则继续比较后面域或者前面的域
列或者元素,若只想对本列起作用,后面还需多加一个本列数字来限定本列 k 1,1
sort -t ' ' -k [1~] [其他选项] 文件名
1代表第一列,按空格分隔符取第一列 -nu代表按数值大小排序后去重
其他选项
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。