-- TOC --
sort命令对输入本文以行为单位进行排序后再输出。
sort命令在默认情况下,是按照ASCII编码的顺序,从小到大进行排序(升序)。如果第1个字符与别的行相同,就继续比较第2个字符。
-r
,将排序反转,降序。
-u
,去重输出
$ echo '1 2 1
> 1 2 3
> 1 2 1
> 1 2 1
> 1 1 6
> 0 1 4' | sort -ur
1 2 3
1 2 1
1 1 6
0 1 4
多行
1 2 1
去重了...
-o
,指定输出文件
-n
,按数字大小比较,默认把数字当成了字符串。测试发现,如果key是数字后跟字母,此参数也有效果。浮点数也支持!
-kN[.m]
,指定以第N列(第m个字符)作为key来排序,此时默认的列分隔符为空格,建议明确指定分隔符,包括空格。
-t
,指定列分隔符,默认没有分割符,整行都参与比较。
下面例子表示,以第3列的第2个字符为key排序,此时如果不指定空格作为分隔符,执行会失败:
$ sort -t' ' -k3.2 tes.txt
a 3 wer
b 5 uio
e 5 ass
e 5 qwe
$ sort -t' ' -k3.2r tes.txt
e 5 qwe
e 5 ass
b 5 uio
a 3 wer
-f
,比较时,忽略大小写。
-c
,检查文件是否已排好序,如果乱序,则输出乱序的开始行,最后用1退出。
-C
,检查文件是否已排好序,如果乱序,不输出内容,用1退出。
本文链接:https://cs.pynote.net/sf/linux/shell/202111247/
-- EOF --
-- MORE --