1
ls -v ./file*
各種各樣的文件名中的自然順序:Bash真正的數字順序包括負數?
file1.txt
file2.txt
file11.txt
但如果我們有負數,它給予回覆:
file1.txt
file2.txt
file11.txt
file-5.txt
file-18.txt
如何在自然順序包括負數排序?
ls -v ./file*
各種各樣的文件名中的自然順序:Bash真正的數字順序包括負數?
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
我認爲這個問題是那些不被視爲負數與分隔數字一樣多,因此它們按前綴排序。如果你知道你想考慮這些負數並對它們進行排序,你可能需要自己排序(使用數組和循環或者使用awk/perl /等)。 –
'-v'選項是用於對*版本號進行排序的,這些數字往往不是負數。 – chepner