フォルダに含まれる複数のファイルの行サイズを累積したいと思います。私は次のスクリプトを書いた。
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
スクリプトの最後で得られるのは、加算算術演算の結果ではなく、123+234+432+...です。
ベストアンサー1
算術評価の構文が正しくありません。次のいずれかを使用してください(最初のものは非常に移植性がありますが遅く、2番目はBourneシェルとAlmquistシェルの初期バージョンを除いてPOSIXであり、移植可能であり、最後の3つは必須ですksh
)。bash
zsh
a=`expr "$a" + "$num"`
a=$(($a+$num))
((a=a+num))
let a=a+num
((a+=num))
または、ループfor
全体をスキップして次のことを実行できます。
wc -l folder/*
または合計のみを希望する場合:
cat folder/* | wc -l
または、zshとそのmult_ios
オプションを使用してください。
wc -l < folder/*