核心内容摘要
2025,当智能之眼窥探爱情:家庭摄像头下的夫妻真实
概述sort命令这个命令是文本排序的核心工具能对文件内容或命令输出按行进行排序字母、数字、时间等规则还支持按指定列、自定义分隔符、去重等高级操作是处理结构化文本、日志、数据清单的必备命令也是join、uniq等命令的前置依赖很多命令要求输入已排序。
资料合集https://pan.quark.cn/s/6fe3007c3e
https://pan.quark.cn/s/561de99256a
https://pan.quark.cn/s/985f55b13d
https://pan.quark.cn/s/d0fb20abd19a
基本语法sort[选项][文件1][文件2]...无文件参数时默认读取标准输入可配合管道|处理其他命令输出默认按每行的字符ASCII码值升序排序字母A-Z、数字
多文件排序时会先拼接所有文件内容再整体排序。
核心选项按功能分类sort的选项覆盖排序规则、字段配置、输出控制高频选项易记且组合性强选项分类选项作用实用场景排序方向-r--reverse降序排序默认升序按数字从大到小、时间从新到旧排序-n--numeric-sort按数字值排序而非字符ASCII排序大小、金额、行数等数字列-h--human-numeric-sort按人类可读的数字如1K、2M、3G排序排序du -h、ls -lh的输出-V--version-sort按版本号排序如v
10 v
9排序软件版本、文件版本号字段/分隔符配置核心-t 字符--field-separator字符指定字段分隔符默认空格/制表符处理CSV逗号分隔、竖线分隔的文本-k N--keyN指定按第N列排序可指定列范围如-k2,3按指定列如用户ID、金额列排序-k N,M——按第N列到第M列排序多列组合排序如先按城市、再按年龄-k Nn——第N列按数字排序组合选项列是数字时避免按字符排序输出控制-u--unique排序并去重仅保留唯一行去重文本、统计唯一值-o 文件--output文件将排序结果输出到指定文件替代重定向排序后覆盖原文件sort -o file file-s--stable稳定排序相同键值的行保持原顺序需保留原始相对顺序的场景-f--ignore-case忽略大小写如A和a视为相同字母排序时统一大小写规则
基础示例快速上手先准备测试文件test.txtbanana Apple cherry 100 20 3 hello Hello场景1默认排序ASCII码升序sorttest.txt输出数字大写字母小写字母ASCII码顺序100 20 3 Apple Hello banana cherry hello场景2数字排序-n 降序-rsort-n -r test.txt# 优先按数字降序非数字行按原规则排输出100 20 3 cherry hello banana Hello Apple场景3忽略大小写排序-fsort-f test.txt输出A/a、H/h视为相同按字母顺序100 20 3 Apple banana cherry Hello hello场景4排序并去重-u# 新增重复行后测试echo-eapple\nApple\napple|sort-f -u# 输出apple忽略大小写去重
进阶示例结构化文本排序核心场景准备结构化文件user.csv逗号分隔姓名,年龄,城市,薪资张三,25,北京,8000 李四,30,上海,15000 王五,28,北京,10000 赵六,35,广州,12000 钱七,25,上海,9000场景1按指定列排序按城市薪资降序# -t ,分隔符为逗号# -k3,3按第3列城市排序# -k4nr按第4列薪资数字降序sort-t,-k3,3 -k4nr user.csv输出先按城市字母序同城市按薪资降序李四,30,上海,15000 钱七,25,上海,9000 王五,28,北京,10000 张三,25,北京,8000 赵六,35,广州,12000场景2处理人类可读数字-h# 模拟du -h输出echo-e100K\ndata\n2M\n1G\n500K|sort-h输出按大小升序100K 500K 2M 1G100K 500K 2M 1G data场景3版本号排序-Vecho-ev
9\nv
10\nv
1\nv
1.
1|sort-V输出按版本号自然顺序v
1.
1 v
9 v
10 v
1场景4排序后覆盖原文件-o直接排序并替换原文件避免sort file file导致文件清空sort-t,-k2n -o user.csv user.csv# 按年龄升序排序结果覆盖原文件
关键
注意事项分隔符处理若字段分隔符是多个空格/制表符混合无需指定-tsort默认将连续空白视为一个分隔符CSV文件若含引号如张三,男,25sort无法识别需先用sed/awk处理引号。
空行处理默认空行排在最前面可通过grep -v ^$先过滤空行再排序。
稳定排序默认排序在键值相同时行顺序可能随机加-s可保持原始相对顺序。
超大文件sort会自动使用临时文件支持GB级文件排序无需担心内存不足。
与uniq配合uniq仅能去重连续重复行需先sort再uniqsort file | uniq等价于sort -u file。