2014-04-14 25 views
0

我需要統計當前文件夾中的所有.txt文件。 我試過ls | grep .txt,但如果我的文件夾內容是:a.txt btxt c.c它將選擇a.txt和btxt,我只想要以.txt結尾的文件。我嘗試過正則表達式的各種組合,但沒有結果。使用grep按擴展名選擇文件

回答

3

查找可能比在這種情況下更好,因爲它是專爲處理文件名:

find . -maxdepth 0 -name '*.txt' | wc -l 

BUF要是你可能奇怪的文件名非常謹慎:

find . -maxdepth 0 -name '*.txt' -exec echo 1 \; | wc -l 
1

對於Grep,使用字符'。'意思是:「任何字符」 ......所以你需要逃脫點:

ls | grep -e "\.txt" 

編輯其實-e選項甚至是不必要的。這將這樣的伎倆:

ls | grep "\.txt" 
1

要計算以字符串名爲「.txt」文件名的最後使用:

ls | grep -E "\.txt$" | wc -l 
+0

只是逃避它沒有做的工作。謝謝。 – user3002428

0

如果您只需要在當前目錄中具有擴展名'.txt'的文件數量,那麼這也將有所幫助。

ls -l *.txt | wc -l