Dies ist der Befehl, den ich verwende, um einige Dateien aufzulisten:
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
und so weiter.
Jetzt möchte ich die Gesamtgröße dieser Dateien durch Summieren der 5. Spalte berechnen. Ich dachte an die Verwendung awk, um dies zu tun, so habe ich Folgendes in einem bestimmten Verzeichnis getestet
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Ich verstehe nicht was das Problem ist, warum dieser Syntaxfehler .
Ich denke zu versuchen
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
dies auch, aber ein einfaches awkSkript funktioniert nicht.
Bitte schlagen Sie mich vor oder korrigieren Sie mich, wenn ich falsch liege oder eine Problemumgehung vorliegt.
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'