将字数计数值分配给变量

kar*_*kar 1 bash sh

我有超过 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)

Gil*_*not 5

只需运行:

totalcount=$(grep -c 'Cost":25' <(cat filename*))
echo $totalcount
Run Code Online (Sandbox Code Playgroud)

但如果它是一些 JSON,有一些更好的方法来做到这一点,使用

如果您更喜欢纯 bash,请使用正确的$( )语法:

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)

AFAIK 内存消耗较少:

awk '/Cost":25/{total++}END{print total}' filename*
Run Code Online (Sandbox Code Playgroud)