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 awk
Skript funktioniert nicht.
Bitte schlagen Sie mich vor oder korrigieren Sie mich, wenn ich falsch liege oder eine Problemumgehung vorliegt.
quelle
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'
ls
!@enzotib hat bereits darauf hingewiesen, was Ihr Syntaxfehler ist - ich werde auf eine kleine Tangente gehen.
Das Summieren einer Zahlenspalte ist eines der Dinge, die immer wieder auftauchen. Ich habe diese Shell-Funktion erhalten:
Damit wird Ihre Lösung:
Das summiert die Zahlen in Spalte 5 und gibt den Wert aus.
quelle
.aliases
Akte.Hier ist eine andere Möglichkeit, dies zu tun
du
:quelle
du -ch --files0-from=-
sagt mir, dass meine Summe "9.0G" ist. Süßer!tail -1
.Falls HP-UX
find
auch über eine-printf
Option verfügt, wäre dies nützlich, um eine Formel fürbc
die Berechnung zu erstellen :Wenn die Formel zu groß wird, kann sie schrittweise berechnet werden:
quelle
Mit GNU
find
:Mit GNU
stat
:Mit BSD
stat
:quelle
jq
ein Dienstprogramm? Scheint nicht auf der Debian-Distribution zu finden (Debian 4.9.51-1 (2017-09-28) x86_64 GNU / Linux)