ls -v ./file*
按自然顺序对文件名进行排序:
file1.txt
file2.txt
file11.txt
但是如果我们包含负数,它会返回:
file1.txt
file2.txt
file11.txt
file-5.txt
file-18.txt
如何按自然顺序排序(包括负数)?
最佳答案
似乎有以下效果:
$ 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/