Linux之关于sort命令的使用详解

黄舟
Lepaskan: 2017-06-07 10:13:57
asal
1714 orang telah melayarinya

sort是在Linux里非常常用的一个命令,将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

这里有一个文件test,内容为:

8723 23423
321324 213432
23 234
123 231
234 1234
654 345234
Salin selepas log masuk

1. sort的-t选项和-k选项

sort提供了-t选项,后面可以设定间隔符, -k来指定列数。

对第一列排序

sort test
Salin selepas log masuk

对第二列进行排序

sort -k 2 test
Salin selepas log masuk

如果将test文件的内容改为:

8723,23423
321324,213432
23,234
123,231
234,1234
654,345234
Salin selepas log masuk

如果要对第二列按照大小排序

sort -t "," -k 2 test
Salin selepas log masuk

如果没有-t选项的话,就是默认的空格或者tab键,因此上面就没有使用-t选项。

2. 倒序排列使用 -r 选项

sort默认的排序方式是升序,-r参数则是改成降序

sort -r test
Salin selepas log masuk

输出结果:

8723 23423
654 345234
321324 213432
234 1234
23 234
123 231
Salin selepas log masuk

3. sort的-n选项

sort默认按ASCII码值进行比较, 所以大家看上面2中的结果会发现, 8723 比 321324 却排在了最前面。 那我们如何让它按照数字大小排序呢?这时候就该-n参数出场了。

sort -n test
Salin selepas log masuk

输出结果:

23 234
123 231
234 1234
654 345234
8723 23423
321324 213432
Salin selepas log masuk
sort -rn test
Salin selepas log masuk

输出结果:

321324 213432
8723 23423
654 345234
234 1234
123 231
23 234
Salin selepas log masuk

附:sort命令参数详解

-f  将小写字母都转换为大写字母来进行比较,亦即忽略大小写

-c  检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

-C  检查文件是否已排好序,如果乱序,不输出内容,仅返回1

-M  以月份来排序,比如JAN小于FEB等等

-b  忽略每一行前面的所有空白部分,从第一个可见字符开始比较

-u  在输出行中去除重复行, 不改变文件本身内容

Atas ialah kandungan terperinci Linux之关于sort命令的使用详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan