ループ内のファイル数の計算

ループ内のファイル数の計算

次の方法で、特定の数字間のファイル数を計算します。

for i in $(eval echo {$start..$stop}); do
ls /home/me/*/file_$i.txt 2> /dev/null | wc -l
done

$(eval echo {$start..$stop})シーケンス式は、一般的な入力を受け入れることができないため必要です。

しかし、ループを繰り返すたびに単一のファイルが存在するかどうかを計算するので、これは私が望むことをしません。代わりに、すべてのファイルに対して繰り返しながら、$startと$stopの間の合計数を計算したいと思います。 (私は大量のファイルを扱い、オーバーフローを避けようとしています。)ファイルが存在するかどうかを確認するのではなく、既存のファイルの総数を計算するように上記のスキームをどのように変更できますか?

ベストアンサー1

この試み、

Count=0
for i in {$start..$stop}; do
   Counter="$(ls /home/me/*/file_$i.txt 2> /dev/null | wc -l)"
   Count=$((Count+Counter))
done
echo "$Count"

おすすめ記事