Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 |
ps auxw | awk '{ print $4 }' |
Zitat
he, nichts für ungut, aber die diskussion mit strcat bezog sich gar nicht auf dich, sondern auf mich. für mich war das ein mittlerer kulturschock, das die von dir beschriebene awk-zeile ÜBERHAUPT funktioniert hat. heute weiss ich warum und ich lebe ruhiger. und deine zeile war deshalb auch richtig, wenn auch ungewöhnlich.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Schreiben Sie ein einfaches Bash-Skript mydo, welches alle Unterverzeichnisse im aktuellen Verzeichnis auflistet und deren Gr¨ossen in MegaByte ausgibt. Abschliessend soll der Gesamtverbrauch ausgegeben werden. Benutzen Sie dazu Schleifen und den Befehl du mit den entsprechenden Optionen. mike@mars:˜> ./mydu /opt 320M /opt/cxoffice 98M /opt/gnome 15M /opt/insight 703M /opt/kde3 31M /opt/mozilla 239M /opt/OpenOffice.org 32M /opt/snavigator 0 /opt/stuff SUM: 1.5G /opt |
Quellcode |
|
1 |
find /opt -type d -exec du --block-size=M {} \; |
Quellcode |
|
1 |
| awk '{ sum+=$1 } END { print "Total:", sum }' |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »onlineuser« (26.03.2006, 23:30)
Zitat
Original von onlineuser
was ist der utnerschied zwischen $1 und $@?
Zitat
warum meinte der prof in der angabe, dass man den Befehl du verwenden soll?
Zitat
Original von strcat
Die Ausgabe der Verzeichnisse wuerde ich mit
Quellcode
1 find /opt -type d -exec du --block-size=M {} \;
erzeugen und dann an awk(1) pipen damit es addiert wird
Quellcode
1 | awk '{ sum+=$1 } END { print "Total:", sum }'
Is aber mehr als eklig; ausserdem fork()'t es wenn die Verzeichnisstruktur tiefer als 32768 Subdirs geht.
Quellcode |
|
1 |
find ... | awk .. |
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Zitat
Original von strcat
STDOUT von find(1) wird ueber eine Pipe an awk(1) geschickt. Also
Quellcode
1 find ... | awk ..
Quellcode |
|
1 |
find $@ -type d -exec du --block-size=M {} \ | awk '{ sum+=$1 } END { print "Total: ", sum }' |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »onlineuser« (27.03.2006, 22:57)