2017-04-20 63 views
0

您好我知道如何使用LinuxUbuntu Linux操作系統:如何計算某些文件的編號在目錄

command:ls -l . | egrep -c '^-'. 

統計所有文件的數量在一個目錄如果目錄下有test_1.jpg, train_1.jpg, test_2.jpg, train_1.jpg .....。我只想統計test_*jpg的數字,並不計算此目錄中train_*.jpg的數量。如何使用Linux命令來做到這一點。謝謝!

+0

https://unix.stackexchange.com/questions/146760/count-files-in-a-directory-by-extension – 4EACH

回答

1

我覺得ls -1 |> wc -l效果很好。請注意,這是一個負號,而不是減號字母l。

編輯:

所以,你的情況應該ls -1 test*.jpg | wc -l工作。你可以調整通配符。在這種情況下,它將匹配從test開始並以.jpg結尾的任何內容。

+0

感謝您的評論,我只想計算一下測試的數量_ *。jpg不包括火車_ *。jpg – tktktk0711

+0

爲此更新了答案。其實,我沒有包含下劃線,所以也許你想讓glob得到'test _ *。jpg' –

+0

謝謝你的回答。 – tktktk0711

1

請問以下爲你工作:

ls -l *train_*.jpg | egrep -c '^-'. 
+0

這當然在我自己的測試中有類似的數據。 – David

1

如果您所有的文件都在同一目錄dir,下面的命令將幫助你。

ll dir/test_*.jpg | wc -l 
ls -al dir/test_*.jpg | wc -l 

釋:

ls -al dir/test_*.jpg | wc -l 

# ll is short for ls -al 
# -l use a long listing format 
# -a, --all 
#  do not hide entries starting with . 

# wc -l print the newline counts. 
1

只要你的文件名不能包含空格

a=(test*.jpg); echo ${#a[@]} 

還要檢查shopt nullglob檢測空列表。

+0

或者在填充陣列之前設置IFS = $'\ n'',不要擔心空間。我可能會這樣做,並將'echo'改爲'find。 -type f -printf「%f \ n」' –

相關問題