
テキストファイルを含むサブディレクトリがたくさんあるディレクトリがあります。すべてのサブディレクトリに存在する単語「foo」の合計数ではなく、各サブディレクトリ(ただし、最初のレベルのみ)に「foo」が何回出現するかを知る必要があります。簡単に言うと、各ディレクトリで手動で実行するだけで解決できます。
grep -riwo 'foo' | wc -l
明らかに、それらはたくさんあるので、これは実現不可能です。そこで、サブディレクトリを含むディレクトリでこれを試しました。
ls -1 | xargs -L1 grep -riwo 'foo' | wc -l
しかし、これは機能しません。私が得た結果から、すべてのフォルダーで実行されたwc
後にのみ出力が取得され、すべての結果を含む完全なリストがパイプされ、すべてのディレクトリで発生する「foo」の合計が出力されるだけなので、その時点では不要になります。grep
wc
xargs
答え1
最上位ディレクトリごとの合計のみが必要なので、単純なループを追加します。
for d in */; do
printf '%s: ' "$d"; grep -riwo 'foo' -- "$d" | wc -l
done