sort命令

-- 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 --