給定一個目錄,獲取所有 txt 檔案,并使用 find 和 grep 獲取每個文本檔案中字串出現的次數。
find $1 -type f -name "*."$2"" -exec grep $3 -l printf {} \;
作為 $1 目錄 $2 txt 格式和 $3 查找出現的字串。
輸出必須是:
$1/file1.txt
3
$1/file2.txt
6
uj5u.com熱心網友回復:
如果要計算出現次數,則需要在命令上使用-cor long--count標志。grep
由于您還想列印檔案名,因此您可以使用-printf并使用%p占位符,它代替找到的專案的路徑。
find "$1" -type f -name "*.txt" -printf "%p\n" -exec grep -c "$2" {} \;
uj5u.com熱心網友回復:
建議將find結果輸入grep命令。比格式化結果awk
grep -c "$3" $(find "$1" -name "*.$2") | awk '{print $1,$2}' FS=":" OFS="\\n"
uj5u.com熱心網友回復:
計算匹配的行,而grep -c不是字串的出現,grep -o word | wc -l會更好。請你試試:
find "$1" -type f -name "*.$2" -exec grep -l "$3" "{}" \; -exec bash -c 'grep -o '"$3"' "{}" | wc -l' \;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/446312.html
