Shell-Script

對文件以數字結尾的 ls 輸出進行排序

  • March 9, 2016

這是我的正常ls命令的輸出:

f1  f10  f11  f12  f13  f14  f15  f16  f17  f18  f19  f2  f20  f3  f4  f5  f6  f7  f8  f9

所以我有20個文件。我需要它們顯示為:

f1  f2 f3  f4  f5  f6  f7  f8  f9 f10  f11  f12  f13  f14  f15  f16  f17  f18  f19  f20  

除了編寫腳本之外,還有任何單行命令嗎?我相信你們中的一些人一定遇到過這種奇怪的情況。注意:以上只是一個範例。在實際場景中,我需要按正確排序順序列出所有文件名。(範圍從f{0..10000}

幸運的是!有一個單行命令

ls -lav

應該做你正在尋找的

使用 GNU ls,您可以使用:

ls -v

使用 POSIX 工具箱:

ls | sort -nk1.2 | paste -sd ' ' -

如果您確定範圍內的所有文件都存在,則 shell 具有大括號擴展

echo f{1..20}

zsh

print -r -- f*(n)

引用自:https://unix.stackexchange.com/questions/268651