Hallo,
habe nachfolgendes Skript gefunden. Wer kennt sich aus um die Ausgabe der Balken an der Länge des grössten Medienname (siehe weiter unten) zu richten.
(gefundenes Skript) df | awk 'headline==0 { printf("%-12s %4s\n", $6, $5); headline=1 }; $1 ~ /^/]*/ { d=int(substr($5,1,length($5)-1)/2); \ b=""; { for(i=1; i<=d; i++) b=b"#" }; { for(i=d; i<=50; i++) b=b"-" }; printf("%-12s %4s %s\n", $6, $5, b ) }'
(Ausgabe) [user1@dex ~]$ df | awk 'headline==0 { printf("%-12s %4s\n", $6, $5); headline=1 }; $1 ~ /^/]*/ { d=int(substr($5,1,length($5)-1)/2); \ b=""; { for(i=1; i<=d; i++) b=b"#" }; { for(i=d; i<=50; i++) b=b"-" }; printf("%-12s %4s %s\n", $6, $5, b ) }' Eingehängt Ben% / 67% #################################------------------ /boot 21% ##########----------------------------------------- /HD500 41% ####################------------------------------- /HD80 22% ###########---------------------------------------- /HD160 42% #####################------------------------------ /media/disk 27% #############-------------------------------------- /media/1.2.9-19-i686-pae 100% ##################################################- /media/HD750 17% ########------------------------------------------- /media/HD750-Part2 44% ######################-----------------------------
Mein Ausgabewunsch: / 67% #################################------------------ /boot 21% ##########----------------------------------------- /HD500 41% ####################------------------------------- /HD80 22% ###########---------------------------------------- /HD160 42% #####################------------------------------ /media/disk 27% #############-------------------------------------- /media/1.2.9-19-i686-pae 100% ##################################################- /media/HD750 17% ########------------------------------------------- /media/HD750-Part2 44% ######################-----------------------------
Gruss und Danke Wolfgang
Hallo Wolfgang,
habe nachfolgendes Skript gefunden. Wer kennt sich aus um die Ausgabe der Balken an der Länge des grössten Medienname (siehe weiter unten) zu richten.
(gefundenes Skript) df | awk 'headline==0 { printf("%-12s %4s\n", $6, $5); headline=1 }; $1 ~ /^/]*/ { d=int(substr($5,1,length($5)-1)/2); \ b=""; { for(i=1; i<=d; i++) b=b"#" }; { for(i=d; i<=50; i++) b=b"-" }; printf("%-12s %4s %s\n", $6, $5, b ) }'
(Ausgabe) [user1@dex ~]$ df | awk 'headline==0 { printf("%-12s %4s\n", $6, $5); headline=1 }; $1 ~ /^/]*/ { d=int(substr($5,1,length($5)-1)/2); \ b=""; { for(i=1; i<=d; i++) b=b"#" }; { for(i=d; i<=50; i++) b=b"-" }; printf("%-12s %4s %s\n", $6, $5, b ) }' Eingehängt Ben% / 67% #################################------------------ /boot 21% ##########----------------------------------------- /HD500 41% ####################------------------------------- /HD80 22% ###########---------------------------------------- /HD160 42% #####################------------------------------ /media/disk 27% #############-------------------------------------- /media/1.2.9-19-i686-pae 100% ##################################################- /media/HD750 17% ########------------------------------------------- /media/HD750-Part2 44% ######################-----------------------------
Mein Ausgabewunsch: / 67% #################################------------------ /boot 21% ##########----------------------------------------- /HD500 41% ####################------------------------------- /HD80 22% ###########---------------------------------------- /HD160 42% #####################------------------------------ /media/disk 27% #############-------------------------------------- /media/1.2.9-19-i686-pae 100% ##################################################- /media/HD750 17% ########------------------------------------------- /media/HD750-Part2 44% ######################-----------------------------
Vielleicht so:
---------------- df -P | awk 'BEGIN {max=0; n=1};\ { if (length($6) > max) {max=length($6)}; \ mount[n]=$6; cap[n]=$5; n++ \ } \ END {\ N=1; printf("%-"max"s %s\n", mount[N], cap[N]); N++; # headline \ for (N=N; N<n; N++) {\ { d=int(substr(cap[N],1,length(cap[N])-1)/2); b=""; \ { for(i=1; i<=d; i++) b=b"#" }; \ { for(i=d; i<=50; i++) b=b"-" }; printf("%-"max"s %4s %s\n", mount[N], cap[N], b ) \ }\ } \ }' ----------------
Erst mal `df -P`, damit lange Pfadnamen, welche die Zahlen auf die zweite Zeile druecken, keine Probleme verursachen.
Die Eliminierung von nicht-lokalen und speziellen Filesystemen (tmpfs etc.: '$1 ~ /^/]*/') habe ich rausgenommen. Das kann man jederzeit wieder einfuegen.
Dann eine Schlaufe durch alle Ausgabezeilen von `df -P`, wobei ich jeweils Mountpunkt und Kapazitaet in den Arrays mount[] und cap[] speichere, die Laenge des Pfades des Mountpunktes messe und 'max' auf die bisher laengste gemessene Laenge setze. Bisher findet kein Ausgabe statt.
Erst am Ende des Skriptes (END{}) loope ich durch mount[] und cap[] und schreibe die Daten heraus. Die erste Zeile behandle ich speziell, da sie nur die Headerzeile beinhaltet und keine Kapazitaetsangaben.
Das Ganze sieht jetzt so aus:
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda5 108254948 43818664 58848480 43% / tmpfs 1957948 12 1957936 1% /dev/shm home:/home/fthommen 298844160 163278528 135565632 55% /home/fthommen home:/home/xsoft 298844160 163278528 135565632 55% /home/xsoft software:/software 104857600 67136 104790464 1% /g/software structures.embl.de:/struct/software/linux/pymol-1.4.1 209715200 97551552 112163648 47% /g/software/linux/pack/pymol-1.4.1 structures.embl.de:/struct/software/linux/glew-1.4.0 209715200 97551552 112163648 47% /g/software/linux/pack/glew-1.4.0 #
# df -P Filesystem 1024-blocks Used Available Capacity Mounted on /dev/sda5 108254948 43818664 58848480 43% / tmpfs 1957948 12 1957936 1% /dev/shm home:/home/fthommen 298844160 163277696 135566464 55% /home/fthommen home:/home/xsoft 298844160 163277696 135566464 55% /home/xsoft software:/software 104857600 67136 104790464 1% /g/software structures.embl.de:/struct/software/linux/pymol-1.4.1 209715200 97551552 112163648 47% /g/software/linux/pack/pymol-1.4.1 structures.embl.de:/struct/software/linux/glew-1.4.0 209715200 97551552 112163648 47% /g/software/linux/pack/glew-1.4.0 #
# mydf Mounted Capacity / 43% #####################------------------------------ /dev/shm 1% --------------------------------------------------- /home/fthommen 55% ###########################------------------------ /home/xsoft 55% ###########################------------------------ /g/software 1% --------------------------------------------------- /g/software/linux/pack/pymol-1.4.1 47% #######################---------------------------- /g/software/linux/pack/glew-1.4.0 47% #######################---------------------------- #
Gruss
frank
[...]
# mydf Mounted Capacity / 43% #####################------------------------------ /dev/shm 1% --------------------------------------------------- /home/fthommen 55% ###########################------------------------ /home/xsoft 55% ###########################------------------------ /g/software 1% --------------------------------------------------- /g/software/linux/pack/pymol-1.4.1 47% #######################---------------------------- /g/software/linux/pack/glew-1.4.0 47% #######################---------------------------- #
Sorry, der Umbruch war vom Mailclient. Im Terminal ist es korrekt. Mal schauen, ob es jetzt besser rueberkommt
frank