复制成功
请遵守本站许可
REPORT
Chapter_Post // Field_Report

Post_Ref: RL-LINUX每日命

2026.04.08

Linux每日命令-36-sort

Echo HaoRan
Echo HaoRan
#计划任务
ANALYSIS

Linux 每日一篇 - 36 - sort#

Linux 文本排序神器!掌握 sort 命令,轻松处理文本数据排序,让数据整理更专业!

sort 命令是什么?#

sort 命令是 Linux 中用于对文本文件内容进行排序的工具,可以按照字典序、数值、月份等不同方式对文本行进行排序,是数据处理的重要工具。

基本用法#

PRTCL // PLAINTEXT
# 按字典序排序文件内容
sort filename
# 按数值排序(适用于数字内容)
sort -n filename
# 反向排序(降序)
sort -r filename
# 按月排序
sort -M filename
# 忽略大小写排序
sort -f filename
# 按特定字段排序
sort -k 2 filename # 按第 2 个字段排序
sort -k 2,2 filename # 按第 2 个字段排序(仅考虑第 2 个字段)
# 唯一排序(去除重复行)
sort -u filename
# 随机排序
sort -R filename

实用技巧#

PRTCL // PLAINTEXT
# 按多个字段排序
sort -k 1,1 -k 3,3n filename # 先按第 1 字段排序,再按第 3 字段数值排序
# 指定分隔符排序
sort -t ':' -k 2,2 /etc/passwd # 以冒号为分隔符,按第 2 个字段排序
# 按不同的数据类型排序
sort -g filename # 按通用数值排序(支持科学计数法)
sort -h filename # 按人类可读的大小排序(如 1K, 1M, 1G)
# 按特定字符位置排序
sort -k 1.3,1.5 filename # 按第 1 字段的第 3-5 个字符排序
# 输出到文件
sort filename > sorted_file.txt
# 同时去重并排序
sort -u filename
# 按版本号排序
sort -V filename
# 按行长度排序
sort -n -k1,1 filename < <(wc -L filename | awk '{print $1 " " $0}')
# 逆序排列
sort -r -k 2 filename
# 组合使用选项
sort -t ':' -k 3,3n -k 1,1 /etc/passwd

常用场景#

PRTCL // PLAINTEXT
# 对日志文件按时间排序
sort -k 1,1 /var/log/access.log
# 按文件大小排序
ls -la | sort -k 5,5n
# 对用户列表按 UID 排序
sort -t ':' -k 3,3n /etc/passwd
# 对成绩表按分数排序
sort -k 3,3nr grades.txt # 按第 3 列数值降序排列
# 去除重复行并排序
sort -u duplicates.txt
# 按 IP 地址排序
sort -t '.' -k 1,1n -k 2,2n -k 3,3n -k 4,4n ip_list.txt
# 按文件权限排序
ls -la | sort -k 1,1
# 对 CSV 文件排序
sort -t ',' -k 2,2 customers.csv
# 按进程内存使用排序
ps aux | sort -k 4,4nr
# 对域名按后缀排序
sort -t '.' -k 3,3 domain_list.txt

高级用法#

PRTCL // PLAINTEXT
# 使用临时目录(处理大文件时)
sort -T /tmp -u large_file.txt
# 指定缓冲区大小
sort -S 1G filename # 使用 1GB 内存缓冲
# 并行处理
sort -s filename # 稳定排序(保持相等元素的原始顺序)
# 结合其他文本处理命令
cat file1 file2 | sort | uniq > merged_sorted.txt
# 按指定字符数排序
sort -k 1.1,1.3 filename # 按第 1 字段的前 3 个字符排序
# 数值和字典混合排序
sort -k 2,2d -k 3,3g filename # 第 2 字段字典序,第 3 字段数值序
# 处理科学计数法
echo -e "1e2\n3e1\n2e0" | sort -g
# 按文件扩展名排序
ls | sort -t '.' -k 2,2
# 在脚本中使用
#!/bin/bash
# 对成绩进行排序并输出前 10 名
sort -k 3,3nr student_scores.txt | head -10

实际应用示例#

PRTCL // PLAINTEXT
# 示例 1: 处理学生成绩表
# 假设文件格式: 姓名 年龄 分数
# 按分数降序排列
sort -k 3,3nr students.txt
# 示例 2: 处理系统进程
# 按 CPU 使用率排序
ps aux --no-headers | sort -k 3,3nr
# 示例 3: 处理网络连接
# 按连接数排序
netstat -an | grep ESTABLISHED | awk '{print $5}' | sort | uniq -c | sort -nr
# 示例 4: 处理日志文件
# 按 IP 地址连接数排序
awk '{print $1}' access.log | sort | uniq -c | sort -nr
# 示例 5: 处理 CSV 数据
# 按特定列排序
sort -t ',' -k 3,3n -k 2,2 data.csv
# 示例 6: 合并排序多个文件
sort file1.txt file2.txt file3.txt > all_sorted.txt
# 示例 7: 处理配置文件
# 按键值对的键排序
grep -v '^#' config.conf | sort

性能优化#

PRTCL // PLAINTEXT
# 对于大文件的处理:
# 使用-T 选项指定临时目录
sort -T /tmp large_file.txt
# 调整缓冲区大小
sort -S 2G large_file.txt
# 利用多核 CPU
# 在现代系统中,sort 通常会自动使用多线程
# 使用外部排序算法
# sort 命令内部实现了有效的外部排序

抖音文案#

🎯 Linuxsort 命令!

✅ 基本用法:sort ✅ 常用参数:sort -option ✅ 实用技巧:sort —help

每天一个 Linux 命令,30 天变身 Linux 高手!

#Linux 入门 #Shell 命令 #程序员必备 #技术分享


关于我#

全平台同名”汪多多是只猫”,专注分享实用技术教程,让你的 IT 学习之路更轻松!

关注我,每天一个 Linux 命令,轻松入门 Linux 系统!

R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.04.08
// END OF POST

订阅

通过 RSS 订阅本站,新文章发布时第一时间收到通知。

Follow
Classified
Chapter_06
Protocol_Ref: CC-BY-NC-SA-4.0

Linux每日命令-36-sort

Author: CHONGXIReleased: 2026.04.08

Licensed under CC BY-NC-SA 4.0

评论

© 2025-2026 EchoSpace
Powered by Astro & echohaoran Non-Collaborative_Entity // Protocol_V.4.21