欢迎各位兄弟 发布技术文章
这里的技术是共享的
可以看看 /node-admin/22571 里面有示例
sort
是 Linux 系统中一个非常实用的命令行工具,用于对文本文件或输入数据进行排序。它支持多种排序规则(如字典序、数字序、月份序等)和丰富的参数选项。以下是 sort
命令的常用参数及其作用详解:
bashsort [选项] [文件]
参数 | 作用 |
---|---|
-b | 忽略行首空白字符(空格、制表符) |
-d | 按字典序排序(仅字母、数字、空格有效) |
-f | 忽略大小写(Fold lowercase to uppercase) |
-g | 按广义数字排序(科学计数法如 1e3 ,支持浮点数) |
-h (human-readable sort 人类可读) | 按人类可读数字排序(如 2K 、1G ,需单位支持) |
-M | 按月份缩写排序(JAN, FEB...DEC) |
-n | 按数字大小排序(而非字符串顺序) |
-V | 按版本号自然排序(如 1.2.10 > 1.2.9 ) |
-r (reverse) | 逆序排序(默认升序,-r 为降序) |
参数 | 作用 |
---|---|
-k POS1[,POS2] | 指定排序键(字段范围),如 -k 2,4 表示按第 2 到第 4 字段排序 |
-t CHAR | 指定字段分隔符(默认空格/tab),如 -t ',' 按逗号分列 |
--field-separator=CHAR | 同 -t |
参数 | 作用 |
---|---|
-u | 去除重复行(相当于 uniq ) |
-c | 检查是否已排序,未排序则报错 |
-m | 合并多个已排序文件(不重新排序) |
-o FILE | 结果输出到文件(而非 stdout),如 -o output.txt |
-s | 稳定排序(保持相等记录的原始顺序) |
-z | 以 NUL 字符(\0 )分隔行(配合 find -print0 使用) |
参数 | 作用 |
---|---|
--parallel=N | 使用多线程加速(N 为线程数) |
--debug | 显示排序的调试信息 |
--help | 显示帮助文档 |
--version | 显示版本信息 |
按数字排序文件
bashsort -n file.txt
按第二列逆序排序(逗号分隔)
bashsort -t ',' -k 2,2 -r data.csv
合并已排序文件并去重
bashsort -m -u sorted1.txt sorted2.txt
按人类可读大小排序(如日志文件中的 5M
、1K
)
bashsort -h sizes.log
检查是否已按版本号排序
bashsort -c -V versions.txt
默认以行为单位排序,字段从 1
开始计数。
若未指定文件或文件名为 -
,则从标准输入读取数据。
对大量数据排序时,--parallel
可提升性能(需 GNU sort 支持)。
如果需要更高级的用法(如自定义排序键),可查阅 man sort
或 info sort
的完整文档。