bash - 在 Bash 中用数字对字符串进行排序

标签 bash sorting alphanumeric

<分区>

我经常想对其中包含数字的字符串进行排序,以便在排序时,例如abc_2, abc_1, abc_10 结果是 abc_1, abc_2, abc_10。我见过的每种排序机制都按 abc_1、abc_10、abc_2 排序,即从左边开始逐个字符排序。

有没有什么高效的排序方式来得到我想要的结果?查看每个字符、确定它是否是数字、从后续数字构建子字符串并将其作为数字排序的想法太可怕了,无法在 bash 中考虑。

有没有大 mustache 的 *nix 大师使用 --sensible_numerical 选项实现了 sort 的替代版本?

最佳答案

执行这个

sort -t _ -k 2 -g data.file
  • -t分隔符
  • -k键/列
  • -g 一般数字排序

关于bash - 在 Bash 中用数字对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17061948/

相关文章:

c++对内部带有类 vector 的类进行排序

Java从字符串的开头和结尾删除所有非字母数字字符

int - 将字母数字转换为数字并且应该是唯一数字

linux - Bash here 文档 - 禁止将代码打印到屏幕上?

linux - 如何将 shell 脚本部署到私有(private) Linux 虚拟机

arrays - 数组无法正确排序 : Swift 4

javascript - 在javascript中排序 - 当值相同时忽略排序

python - Django:在提交表单时生成唯一的 8 字符字母数字 ID 字符串

linux - 使用 bash 中的查找重命名多个级别的目录

linux - 从bash脚本启动Shrewsoft