我有超过 100 个文件。我想找到具有特定值的行,wc 这些行并从所有文件中获取总字数。我不知道如何为字数分配一个值。这就是我所拥有的,但它给出了错误,指出替换错误。
total=0
for f in filename*
do
currentFileCount=${grep "Cost\":25" $f | wc -l}
let total+=currentFileCount
done
echo $total
Run Code Online (Sandbox Code Playgroud)
totalcount=$(grep -c 'Cost":25' <(cat filename*))
echo $totalcount
Run Code Online (Sandbox Code Playgroud)
但如果它是一些 JSON,有一些更好的方法来做到这一点,使用jq
$( )语法:total=0
for f in filename*; do
currentFileCount=$(grep 'Cost":25"' "$f" | wc -l)
total+=currentFileCount
done
echo $total
Run Code Online (Sandbox Code Playgroud)
awk '/Cost":25/{total++}END{print total}' filename*
Run Code Online (Sandbox Code Playgroud)