将字数统计值赋给变量

时间:2016-10-10 21:17:57

标签: bash sh

我有超过100个文件。我想找到具有特定值的行,wc这些行并从所有文件中获取总字数。我不知道如何为字数分配值。这就是我所拥有的,但它给出了错误的替换错误。

total=0
for f in filename* 
  do
  currentFileCount=${grep "Cost\":25" $f | wc -l} 
  let total+=currentFileCount
done
echo $total

1 个答案:

答案 0 :(得分:4)

只需运行:

totalcount=$(grep -c 'Cost":25' <(cat filename*))
echo $totalcount

但是,如果它是一些JSON,那么有一些更好的方法,

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

total=0
for f in filename*; do
  currentFileCount=$(grep 'Cost":25"' "$f" | wc -l)
  total+=currentFileCount
done
echo $total

RAM消费者AFAIK越少:

awk '/Cost":25/{total++}END{print total}' filename*