xargsを使用してawkまたは他の式の出力を合計する方法

xargsを使用してawkまたは他の式の出力を合計する方法

次のようなbashシェルスクリプトがあるとしましょう。

#!/bin/bash
export  count=0;
for i in `ls ./mydoc` ;do

     pdfinfo ./mydoc/$i | egrep Pages |awk {'print $2'} |xargs -+ $count   ;
                                                        ^^^^^^^^^^^^^^^^^
done;

echo $count;

各PDFファイルのページを列挙しますが、一緒に追加する方法がわかりません。 !!!!

ベストアンサー1

ただawkにしてxargsを忘れてください。

awk '{total += $2} END {print total}'

しかし、awkを一度だけ実行し、ループのすべての出力をここにパイプするだけです。別のgrepを削除しませんか?

for i in mydoc/* ; do
    pdfinfo $i
done | awk '/^Pages/ { total += $2 } END { print total }'

おすすめ記事