Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題110

問題110 複数のディレクトリ内のファイル数をカウント

/var/log以下のディレクトリを列挙し、そのそれぞれに対して含まれるファイル数を数える問題だった。早とちりして/var/logを再帰的に調べてファイルを片っ端から列挙してしまった。

解答例は

find . -type d | while read d; do echo -n $d" "; sudo find "$d" -type f -maxdepth 1 | wc -l;done

となる。最初のfindでディレクトリをすべて列挙して、それからその出力をechoに与えて改行なしで出力しなおし、さらにその出力をまたfindに与え、今度は深さ1でファイルの検索を行った。最後に行数を数えて終了した。