如何統計某個單字在每個資料夾的檔案中出現了多少次?

如何統計某個單字在每個資料夾的檔案中出現了多少次?

我有一個目錄,其中有很多子目錄,其中包含文字檔案。我需要知道“foo”在每個子目錄中出現多少次(但僅在第一級),而不是所有子目錄中存在的單字“foo”的總和。簡而言之,我將通過簡單地在每個目錄上手動運行來解決這個問題

grep -riwo 'foo' | wc -l 

顯然,因為它們有很多,這是不可行的。所以我在包含子目錄的目錄上嘗試了這個

ls -1 | xargs -L1 grep -riwo 'foo' | wc -l

但這也不起作用,因為從我得到的結果來看,只有在所有文件夾上執行wc之後才得到輸出,將包含所有結果的完整列表通過管道傳輸到該列表,僅輸出所有目錄中出現的“ foo」的總和,在那一點上不必要grepwcxargs

答案1

由於您只需要每個頂級目錄的總計,因此請添加一個簡單的循環:

for d in */; do 
  printf '%s: ' "$d"; grep -riwo 'foo' -- "$d" | wc -l
done

相關內容