Bash中如何忽略前缀对内容进行排序?
用sort实现从指定位置开始排序的简单方法
你可以直接用sort命令的字节位置排序功能,不需要额外工具,比awk更简洁:
核心命令
针对你的需求(从第4个字符开始排序),执行以下命令:
sort -k 1.4 input.txt
命令解释
-k 1.4表示以整行作为第1个字段(未指定分隔符时默认整行是一个字段),从第4个字节开始提取排序键。这样会自动忽略每行前3个字符,只从第4个字符开始比较排序。
测试验证
把你的输入内容保存到input.txt,执行命令后输出与预期完全一致:
foo1 bar10 gaa11 baz12 quu2
扩展说明
如果需要从第N个字符开始排序,只需把1.4改为1.N即可,比如从第5个字符开始排序就用-k 1.5。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

