上一篇                     
               
			  Linux排序命令实战技巧
- 电脑教程
- 2025-06-07
- 4930
 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 查阅速查表,加深记忆。
 
  
			 
			 
			 
			 
			 
			 
			 
			