リストされたファイルのサイズを要約する方法はありますか?

リストされたファイルのサイズを要約する方法はありますか?

以下は、一部のファイルの一覧表示に使用するコマンドです。

find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \;
-rw-r--r--   1 qa1wrk15   test       1265190 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_7.20110929.extract.sys
-rw-r--r--   1 qa1wrk15   test       1345554 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_2.20110929.extract.sys
-rw-r--r--   1 qa1wrk15   test       1370532 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_3.20110929.extract.sys
-rw-r--r--   1 qa1wrk15   test       1399854 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_8.20110929.extract.sys

など。

5番目の列を合計してこのファイルの合計サイズを計算しようとしています。を使用してこれを実行したかったawkので、特定のディレクトリで以下をテストしました。

>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched

何が問題なのか、なぜこれが起こるのか理解できません。文法エラー

試してみたい

ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total} 

これも機能しますが、単純なawkスクリプトは機能しません。

私が間違っているか解決策がある場合は、私に提案または修正してください。

ベストアンサー1

'まず、傾いた一重引用符()の代わりにまっすぐな一重引用符()を使用する必要があります`

インラインスクリプトはawk次のとおりです。

ls -lrt | awk '{ total += $5 }; END { print total }'

したがって、初期化totalawkゼロに初期化)、ループがなく、awk各入力行でスクリプトがすでに実行されています。

おすすめ記事