当前位置:首页>Linux>Linux sort 命令:13 个实战示例,文本和磁盘排序一次搞定

Linux sort 命令:13 个实战示例,文本和磁盘排序一次搞定

  • 2026-10-11 08:33:00
Linux sort 命令:13 个实战示例,文本和磁盘排序一次搞定

在linux 文本处理里,sort是排序列、去重、统计、日志分析的神器。默认按整行字典序排序,配合参数可实现数值、多字段、自定义分隔符、去重、反向等需求。

今天整理13个生产级实战示例,全覆盖日常工作场景,看完直接复制即用,文本、磁盘、日志排序全部一键搞定。

一、核心参数速查

  • -n:按数值排序(避免 10 字符序坑)
  • -r:反向 / 降序
  • -u:排序并去重
  • -t:指定字段分隔符(如逗号、冒号)
  • -k:按指定字段排序(-k start [,end])
  • -b:忽略行首空白
  • -f:忽略大小写
  • -o:输出到文件(安全覆盖原文件)
  • -c:检查是否已排序
  • -g:通用数值排序(支持科学计数法)
二、简单排序场景
1:默认字典序排序
sort ceshi.txt
sort是按ascii码排序,数字 < 大写字母 < 小写字母,总结起来就是s 数字不按大小、大写在小写前,所有看起来比较变扭,这时候就要用到-n参数了。
2:按照数值排序(必用 -n)
sort -n ceshi.txt
-n:代表按照数值大小进行排序,只排序数字,从小到大,只认数字开头的值。
3:反向排序(降序)
sort -nr ceshi.txt
-r:代表反向排序。
4:排序并去重
sort -u ceshi.txt
-u:代表排序并去重。
5:按第 2 列(年龄)数值升序
sort -k2n cesh1.txt
-k2:以第2列为排序字段,-n:按照数值排序。
6:按年龄降序,年龄相同按薪资降序
sort -k2nr -k4nr ceshi1.txt
先按年龄降序 → 年龄一致再按薪资降序。
7:指定分隔符
#逗号分隔txt按第4列薪资降序sort -t ',' -k4nr ceshi2.txt#/etc/passwd按UID(第3列)升序sort -t ':' -k3n /etc/passwd
-t:指定分割符号。
8:固定字段起止(精准排序)
#仅按第2列(年龄)字典序sort -k2,2 ceshi1.txt
  • -k3 = 从第 3 列开始,到行尾都参与排序;
  • -k3,3= 只取第 3 列排序。
三、实战高频排序场景 
1:日志 IP 访问 Top10 统计
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
提取 IP(awk)→排序(sort)→统计次数(uniq -c)→按次数降序(sort -nr)→取前 10(head -10)。
2:接口访问路径 Top20
awk '{print $7}' access.log | grep -v '^-$' | sort | uniq -c | sort -nr | head -20
  • awk '{print $7}' access.log:从日志中提取第 7 列(请求路径);
  • grep -v '^-$':过滤掉无效的 -空路径;
  • sort:对路径进行排序,为 uniq 做准备;
  • uniq -c:统计每个路径的访问次数;
  • sort -nr:按访问次数从高到低排序;
  • head -20:只显示访问量最高的前 20 个路径。
3:IP 地址正确排序
sort -t '.' -k1n -k2n -k3n -k4n ip.txt
-t '.':指定点号 . 作为分隔符 ,-k1n:按第 1 段数字排序。
4:大文件排序 + 输出到原文件
sort -n bigfile.txt -o bigfile.txt
-o:参数是 sort 独有的安全覆盖方式。也就是数字排序并直接保存到原文件。

5:目录大小排序

du -sh * |sort -rh 

一般用于排除那个文件或者目录占用较大空间的排查,比较实用。

四、高频组合速记

  • 数值降序:sort -nr
  • 多字段:sort -k1,1 -k2nr
  • txt/csv排序:sort -t ',' -k3n
  • 统计TopN:sort | uniq -c | sort -nr | head
  • 安全写回:sort file -o file

五、注意事项

  • 默认字符序,数字一定要加 -n
  • 多字段用 -k start,end 限定范围,避免整行参与
  • 分隔符 -t 后直接跟符号,不加空格
  • 去重用 sort -u 比 sort|uniq 更高效
  • 大文件优先 sort -o,避免重定向异常
sort是linux文本处理的基石命令,配合 awk、uniq、grep 可完成 90% 日志与数据清洗。把上面 12 个示例练熟,日常运维、数据排查效率直接翻倍。
如果觉得文章对你的运维工作有帮助,记得点赞加关注。
#运维#linux运维#sort命令

最新文章

随机文章