- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
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 时,表示只使用 第一列 作为排序依据,不会涉及行尾的其他内容。
-n 是 sort 命令的一个选项,用于按数值排序。sort默认按 ASCII 字符顺序进行比较,1 和 10 都以字符 1 开头,因此 10 被认为比 2 小。
-r 是 sort 命令的选项,用于逆序排序(reverse order)。它将排序结果反转,不论数据
是按字典序还是数值排序。
-u 是 sort 命令的选项,用于去除重复行。在排序过程中,如果有多行内容完全相同,
-u 只保留其中的一行。
-o 是 sort 命令的选项,用于指定输出文件。它可以将排序结果直接保存到一个文件
而不是打印到标准输出(终端)。
-t 指定分隔符。默认情况下,sort 假定空格或制表符为字段的分隔符,使用 -t 可以指定其他分隔符。
-f 是 sort 命令的选项,用于忽略大小写进行排序。它会将所有的字符都视为相同,
无论是大写字母还是小写字母,都按相同的规则进行比较。
-M 参数用于 sort 命令中,它实现了 按月份名称排序。月份名称(如 "Jan", "Feb", "Mar" 等)会按照它们在年份中的实际顺序进行排序,而不是按字母顺序排序。
-h 参数用于 按人类可读的数值排序,也就是 human-readable sort。它特别用于处理
带有单位的数值(如 1K、2M、3G 等),并能够根据这些单位进行正确的排序。
如果你想将多个文件拼接在一起并进行排序,可以直接使用 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 命令解决问题,挖掘更多实用技巧。
售前咨询
售后咨询
备案咨询
二维码
TOP