引数として渡されたすべてのテキストファイルの総行数を出力するスクリプト

引数として渡されたすべてのテキストファイルの総行数を出力するスクリプト

だから私はテキストファイルの引数を受け入れ、そのファイルの総行数を出力するスクリプトを書いています。たとえば、私がこう言うと

./myScript file1 file2 file3

それは印刷されます

10 total

(これら3つのファイルのすべての行の合計は10であると仮定します。)

私はすべての主張を確認する方法を知っています。私はまた、ファイルの行数を取得するには、次のように言うことを知っています。

wc -l < fileName

しかし、これを一種の累積合計に追加できる「int」にどのように変更できますか?

ベストアンサー1

cat単にパイプを使用して目標を達成できます。

cat "$@" | wc -l

実際に手動で合計を計算するには、awkを使用します。

for f in "$@"; do 
    wc -l < "$f"
done | awk '{ sum+=$1 } END { print sum }'

または、最後の行を解析するには、wc「total」文字列を削除します。

wc -l "$@" | awk 'END { print $1 }'

おすすめ記事