Bash 真正的数字顺序包括负数?

标签 bash sorting

ls -v ./file* 按自然顺序对文件名进行排序:

file1.txt
file2.txt
file11.txt

但是如果我们包含负数,它会返回:

file1.txt
file2.txt
file11.txt
file-5.txt
file-18.txt

如何按自然顺序排序(包括负数)?


灵感来自Bash true numerical order

最佳答案

似乎有以下效果:

$ ls file*|sort -k1.5n  #start sorting at character 5
file-18.txt
file-5.txt
file1.txt
file2.txt
file11.txt

要测试,请执行以下操作:

echo "a black"  > file-18.txt
echo "e white"  > file-5.txt
echo "i red"    > file1.txt
echo "o green"  > file2.txt
echo "u blue"   > file11.txt
echo "voyelles" > file013.47.txt
ls file*|sort -k1.5n  #start sorting at character 5

关于Bash 真正的数字顺序包括负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113354/

相关文章:

c - 如何在 Linux 中获取本地(区域)日期格式?

bash - 为什么这个模式匹配 `ab` ,而不是 `ba` ?

java - 给定一个数字流,例如 1,3,5,4,6,9,我被要求打印它们,例如 1,3-6,9

javascript - 使用下划线 sortBy 进行对象排序的数组

matlab - 在 Matlab 中对数组结构进行排序

php - 使用来自另一列的字符串变量以及其他信息创建 MySQL 列

bash - 根据系统变量动态设置 cron 作业的时间

linux - 如何在不重启 Linux 服务器的情况下在 shell 脚本中重新加载环境变量

java - 排序 2 个数组

javascript - AngularJS orderBy - Chromium 浏览器中疯狂的 Array.prototype.sort 行为 - 无法清除排序