欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux sort 命令 参数 -r r -h h AG chatgpt 有大用 有大大用

可以看看 /node-admin/22571   里面有示例

sort 是 Linux 系统中一个非常实用的命令行工具,用于对文本文件或输入数据进行排序。它支持多种排序规则(如字典序、数字序、月份序等)和丰富的参数选项。以下是 sort 命令的常用参数及其作用详解:


基本语法

bash
sort [选项] [文件]

常用参数分类说明

1. 排序规则

参数作用
-b忽略行首空白字符(空格、制表符)
-d按字典序排序(仅字母、数字、空格有效)
-f忽略大小写(Fold lowercase to uppercase)
-g按广义数字排序(科学计数法如 1e3,支持浮点数)
-h  (human-readable sort 人类可读)按人类可读数字排序(如 2K1G,需单位支持)
-M按月份缩写排序(JAN, FEB...DEC)
-n按数字大小排序(而非字符串顺序)
-V按版本号自然排序(如 1.2.10 > 1.2.9
-r (reverse)逆序排序(默认升序,-r 为降序)

2. 控制字段排序

参数作用
-k POS1[,POS2]指定排序键(字段范围),如 -k 2,4 表示按第 2 到第 4 字段排序
-t CHAR指定字段分隔符(默认空格/tab),如 -t ',' 按逗号分列
--field-separator=CHAR同 -t

3. 输出控制

参数作用
-u去除重复行(相当于 uniq
-c检查是否已排序,未排序则报错
-m合并多个已排序文件(不重新排序)
-o FILE结果输出到文件(而非 stdout),如 -o output.txt
-s稳定排序(保持相等记录的原始顺序)
-z以 NUL 字符(\0)分隔行(配合 find -print0 使用)

4. 特殊用途

参数作用
--parallel=N使用多线程加速(N 为线程数)
--debug显示排序的调试信息
--help显示帮助文档
--version显示版本信息

示例场景

  1. 按数字排序文件

    bash
    sort -n file.txt
  2. 按第二列逆序排序(逗号分隔)

    bash
    sort -t ',' -k 2,2 -r data.csv
  3. 合并已排序文件并去重

    bash
    sort -m -u sorted1.txt sorted2.txt
  4. 按人类可读大小排序(如日志文件中的 5M1K

    bash
    sort -h sizes.log
  5. 检查是否已按版本号排序

    bash
    sort -c -V versions.txt

注意事项

  1. 默认以行为单位排序,字段从 1 开始计数。

  2. 若未指定文件或文件名为 -,则从标准输入读取数据。

  3. 对大量数据排序时,--parallel 可提升性能(需 GNU sort 支持)。

如果需要更高级的用法(如自定义排序键),可查阅 man sort 或 info sort 的完整文档。


普通分类: