Linux之sort跟练教程

2025-02-24 09:49:36 881

sort 是一个非常强大且灵活的命令,通过多种选项可以实现不同的排序需求。在实际使用时,可以根据需要选择不同的选项,如按数字排序、按列排序、逆序排序、去重等。理解这些选项的作用,可以帮助你更高效地处理和分析文本数据。


话不多说直接上案例:

[root@test sort]# cat test.txt 5 apple 2 banana 8 apple 10 orange 3 banana 1 pear 2 apple

需求是要根据先根据第一列再根据第二列进行从小到大排序

sort -k 1,1 -n -k 2,2 test.txt


结果:

[root@test sort]# sort -k 1,1n -k 2,2 test.txt 1 pear 2 apple 2 banana 3 banana 5 apple 8 apple 10 orange


过程:

sort -k 1跟sort -k 1,1的区别

当只写 -k 1 时,表示从 第一列开始 排序,直到行尾。这意味着整个行尾的内容都会被作为排序依据,而不仅仅是第一列。

当指定 -k 1,1 时,表示只使用 第一列 作为排序依据,不会涉及行尾的其他内容。

image.png

-n 是 sort 命令的一个选项,用于按数值排序。sort默认按 ASCII 字符顺序进行比较,1 和 10 都以字符 1 开头,因此 10 被认为比 2 小。

image.png

-r 是 sort 命令的选项,用于逆序排序(reverse order)。它将排序结果反转,不论数据

是按字典序还是数值排序。

-u 是 sort 命令的选项,用于去除重复行。在排序过程中,如果有多行内容完全相同,

-u 只保留其中的一行。

image.png

-o 是 sort 命令的选项,用于指定输出文件。它可以将排序结果直接保存到一个文件

而不是打印到标准输出(终端)。

image.png

-t 指定分隔符。默认情况下,sort 假定空格或制表符为字段的分隔符,使用 -t 可以指定其他分隔符。

image.png

-f 是 sort 命令的选项,用于忽略大小写进行排序。它会将所有的字符都视为相同,

无论是大写字母还是小写字母,都按相同的规则进行比较。

image.png

-M 参数用于 sort 命令中,它实现了 按月份名称排序。月份名称(如 "Jan", "Feb", "Mar" 等)会按照它们在年份中的实际顺序进行排序,而不是按字母顺序排序。

image.png

-h 参数用于 按人类可读的数值排序,也就是 human-readable sort。它特别用于处理

带有单位的数值(如 1K、2M、3G 等),并能够根据这些单位进行正确的排序。

image.png

如果你想将多个文件拼接在一起并进行排序,可以直接使用 sort 命令。sort 会按照默认的顺序将所有文件的内容合并,然后进行排序。

sort file1.txt file2.txt:直接排序多个文件。

cat file1.txt file2.txt | sort:通过管道拼接文件并排序。

sort -o sorted_output.txt file1.txt file2.txt:排序并输出到新文件。

sort -u file1.txt file2.txt:拼接文件并去重后排序。

配合linux awk命令 刷选排序稳稳滴~


通过上述众多案例和选项的详细讲解,我们能看到 sort 命令在文本处理方面的巨大潜力。熟练掌握 sort 命令,灵活运用各种选项,能让你在处理文本数据时更加得心应手,大大提高工作效率。在今后的 Linux 操作中,不妨多尝试用 sort 命令解决问题,挖掘更多实用技巧。

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索。




提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: