上一篇
Linux排序命令实战技巧
- 电脑教程
- 2025-06-07
- 2562
Linux排序命令sort可对文本行排序,默认按首字符升序排列,常用参数:
-n
按数值大小排序,
-r
倒序排列,
-u
去除重复行。
在Linux系统中,sort
命令是处理文本排序的核心工具,它能够高效地对文件内容或输入流进行排序、去重和合并操作,以下是一份详细的操作指南,结合实用场景和技巧:
基础排序操作
默认排序(按字典序)
sort file.txt # 升序排列文件内容 cat file.txt | sort # 通过管道排序
逆序排序
sort -r file.txt # 降序排列
按数字大小排序
sort -n file.txt # 处理纯数字(如 10 > 2)
去重排序
sort -u file.txt # 合并重复行
高级列处理(表格数据排序)
指定列排序
# 按第2列数字降序排列 sort -t',' -k2,2 -nr data.csv
-t','
:以逗号为列分隔符-k2,2
:只针对第2列排序-nr
:数字降序(n
为数字排序,r
为逆序)
多列混合排序
# 先按第1列字母升序,再按第3列数字降序 sort -t':' -k1,1 -k3,3nr data.txt
特殊场景处理
忽略大小写
sort -f file.txt # 不区分大小写(A=a)
自定义排序规则
# 按月份名称排序(Jan, Feb...) sort -M months.txt
合并多个文件
sort file1.txt file2.txt -o sorted_all.txt # 合并后输出到文件
检查是否已排序
sort -c file.txt # 若未排序,输出错误位置
性能优化与安全操作
大文件处理
sort --parallel=4 -S 2G huge_file.txt # 启用4线程,分配2GB内存
避免覆盖原文件
sort file.txt -o sorted.txt # 安全输出(不可用 > 原文件)
实用示例
示例文件 data.csv
:
Alice,350
Bob,200
Carol,350
目标:按第二列数字降序,同数字时按名字升序
sort -t',' -k2nr -k1 data.csv
输出:
Alice,350
Carol,350
Bob,200
注意事项
- 分隔符冲突含空格,建议显式用
-t
指定分隔符(如-t' '
)。 - 列索引规则:
-k2,3
表示从第2列开始到第3列结束作为排序键。 - 字符集问题:非ASCII字符(如中文)需设置
LC_ALL=C
:LC_ALL=C sort file.txt # 避免语言环境干扰
引用说明参考 GNU Coreutils 官方文档及 POSIX 标准命令规范,实践环境基于 Ubuntu 22.04 LTS,更多参数详见
man sort
或访问 GNU Coreutils手册。
通过掌握这些技巧,可高效处理日志分析、数据清洗等任务,提升命令行生产力,建议通过 sort --help
查阅速查表,加深记忆。