Questo è il comando che sto usando per elencare alcuni file:
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
e così via.
Ora voglio calcolare la dimensione totale di questi file riassumendo la quinta colonna. Ho pensato di usare awk, per fare questo, quindi ho testato quanto segue in una directory particolare
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Non capisco qual è il problema, perché questo errore di sintassi .
Sto pensando di provare
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
anche questo, ma un semplice awkscript non funziona.
Per favore, suggeriscimi o correggimi se sbaglio, o se c'è una soluzione per questo.
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'