
我在下面給出了 find 命令來查找並列出資料夾中的所有文件,文件按字母順序列出,但我想以數字模式列出所有文件。當我使用“-number”代替“-name”時,它不起作用。
find . -type f -name '*'
I100001093
I200001093
I300001093
XB00001093
I100001094
I200001094
I300001094
XB00001094
I100001095
I200001095
I300001095
XB00001095
任何人都可以建議我按數字順序列出的正確命令。
答案1
根據您希望如何處理I
等等X
部分,您也許可以只使用sort
以下命令:
find . -type f | sort -n
如果這不是您想要的排序順序,您必須向我們提供更多詳細資訊(最好向我們展示您的範例中所需的輸出)。
假設您要將名稱的開頭分組在一起,我們可以指定要排序的關鍵欄位。由於 find 的輸出將以./{id}
批次中相關的接下來兩個字元(看似)開始,因此我們可以從指定排序鍵的行上的第 5 個字元開始排序:
find . -type f | sort -n -k 1.5
-k
for sort 允許您指定要排序的鍵,這裡我們對第一個欄位進行排序,但從第 5 個字元開始,然後使用-n
數字排序
如果您只需要目前目錄,可以使用-maxdepth
如下所示:
find . -maxdepth 1 -type f | sort -n -k 1.5
如果你想讓它便攜:
find . -path '*/*/*' -prune -o -type f | sort -n -k 1.5