2014-01-11 4 views
0

Следующая команда покажет диск, потребляемый каждой папкой.Поиск количества файлов в каждой папке

# du */ -hs 
28G  Amar/ 
22G  Aurang/ 
20G  Mu/ 
19G  Nag/ 
13G  Nash/ 
19G  Pun/ 

Как узнать количество файлов, заканчивающихся на .sql в каждой папке?

В этом случае нет подпапки, если это имеет значение.

ответ

1

Попробуйте это:

$ find . -type f -name '*.sql*' 
./b/a.sql 
./b/c.sql 
./b/b.sql 
./c/a.sql 
./c/d.sql 
./c/c.sql 
./c/b.sql 
./a/a.sql 
./a/b.sql 

$ find . -type f -name '*.sql*' | awk -F/ '{print $2}' | uniq -c 
     3 b 
     4 c 
     2 a 
1

Есть, конечно, много способов сделать это. Вот один с простым подходом:

for i in *; do [[ -d $i ]] || continue; echo $i/: $(find "$i" -maxdepth 1 -type f -name '*.sql' | wc -l); done 

Как вы просили, этот подход не учитывает подкаталоги.

+0

[никогда не разобрать вывод логинсервера] (http://mywiki.wooledge.org/ParsingLs) –

+0

@FredrikPihl спасибо для просветления меня. Я изменил свой ответ, чтобы сохранить его суть, но теперь я принял во внимание ваш комментарий. – rul

0

вы не должны принимать это трудно .... просто попробовать:

ls -l | grep *.sql | wc -l 
Смежные вопросы