2014-01-10 49 views
0

我遇到問題。當我在shell只使用ls命令我的文件列表如下(怪異):如何在linux shell中使用`ls`列出文件,因爲它們在相應文件夾中列出

[HorribleSubs] Fairy Tail - 166 [720p].mkv 
[HorribleSubs] Fairy Tail - 16 [720p].mkv 
[HorribleSubs] Fairy Tail - 167 [720p].mkv 

當我雖然打開我的文件夾,該文件列出像這樣(首選):

[HorribleSubs] Fairy Tail - 16 [720p].mkv 
... 
... 
[HorribleSubs] Fairy Tail - 166 [720p].mkv 
[HorribleSubs] Fairy Tail - 167 [720p].mkv 

如何使用ls命令在shell中列出與相應文件夾中完全相同的文件。在該文件夾中,按「名稱」排序。

當我鍵入ls -v的情況如下表所示:

[HorribleSubs] Fairy Tail - 11 [720p].mkv 
[HorribleSubs] Fairy Tail - 12 [720p].mkv 
[HorribleSubs] Fairy Tail - 13 [720p].mkv 
... 
... 
[HorribleSubs] Fairy Tail - 175 [720p].mkv 
[Horriblesubs] Fairy Tail - 01 [720p].mkv 
[Horriblesubs] Fairy Tail - 02 [720p].mkv 
[Horriblesubs] Fairy Tail - 03 [720p].mkv 
[Horriblesubs] Fairy Tail - 04 [720p].mkv 
[Horriblesubs] Fairy Tail - 05 [720p].mkv 
[Horriblesubs] Fairy Tail - 06 [720p].mkv 
[Horriblesubs] Fairy Tail - 07 [720p].mkv 
[Horriblesubs] Fairy Tail - 08 [720p].mkv 
[Horriblesubs] Fairy Tail - 09 [720p].mkv 
[Horriblesubs] Fairy Tail - 10 [720p].mkv 
+0

不需要python標記。推薦使用 –

+0

。 – Kris

+0

@Kris如果你運行'\ ls'怎麼辦? (注意反斜槓) – dogbane

回答

1

使用排序實用程序,用戶還可以選擇指定將用於排序的起始列。所以這個命令:

ls | sort -k 1.5n 

將整理使用1st柱,並在5th場首發。假設你的文件全部以字file,這應該使用數字後的自然順序

輸出排序:

file01.txt 
file11.txt 
file16.txt 
file116.txt 
file167.txt 

對於新的情況下(妖精的尾巴 - #[720P] .MKV ...),請嘗試以下命令:

ls | sort -k4n 
+0

我認爲這裏的主要問題是我有數字2和3位數字。我想要的是從1到175開始以最低數字開始並以最高結束的列表。 – Kris

+0

當你運行上面的命令時你會得到什麼輸出?請記住,1。5'命令意味着'第1欄,第5欄'因此,如果你正在使用上面提到的文件 – smac89

+0

我得到錯誤的列表,請確保相應地調整它。它從file09跳轉到file100。還有file106,file10,file107。其他文件之間的File10。 – Kris

1

可以使用ls -v爲 「自然排序」

從手冊頁:

-v自然排序(版本)號碼

+0

這種工作方式差不多。當我使用'ls -v'時,列表以file11.txt開始,最後到file175.txt,然後以file01.txt,file02.txt結尾,最後到file10.txt – Kris

0

您總是可以將任何命令的輸出傳送到UNIX sort實用程序,然後根據需要對其進行分類。例如:

% ls | sort 
file16.txt 
file166.txt 
file167.txt 
相關問題