Bash

如何計算目錄中每個文件的字元串出現次數?

  • July 19, 2022

grep -G '{string}' *. | wc -l {string}給我整個目錄中的總數。另一方面,為了我的興趣wc -l *.,給了我每個文件每行的計數,但不計算每個文件的計數。{string}我正在尋找兩者的組合,我可以{string}分別計算每個文件的出現次數。

您需要的grep選項是-c

-C

僅將選定行的計數寫入標準輸出。


如果您有要在其中搜尋的嵌套目錄:

使用查找+ grep

find /your_dir -type f -exec grep -cF '{string}' {} +

或者,如果GNU Grep您(或任何其他支持grep-r的實現)可以進行遞歸搜尋:

grep -rcF '{string}' your_dir

如果目錄裡面沒有子目錄,一個簡單的:

grep -cF '{string}' your_dir/*

將工作。


另請注意,-GGNU Grep特定)啟用BRE引擎,這是預設選擇並且不處理ERE標籤{(如果未轉義)。考慮使用-F選項強制grep搜尋簡單字元串或在不需要時禁用正則表達式元字元插值。

引用自:https://unix.stackexchange.com/questions/710462