Sziasztok!
Tud valaki segíteni abban, hogy hogyan lehetne kinyerni df parancs kimenetéből a %-os fogalaltság értékét.
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/ida/c0d0p1 3842376 95452 3551736 3% /
tmpfs 388336 0 388336 0% /dev/shm
/dev/ida/c0d0p2 4324760 66088 4038984 2% /home
/dev/ida/c0d1p2 4893924 374176 4271144 9% /usr
/dev/ida/c0d1p1 3842376 195008 3452180 6% /var
Ebből csak a következő értékek kellenének:
3%
0%
2%
stb...
Próbáltam cut-al kivágni, de szerintem nem tabbal van separálva, hanem szóközökkel.
Legalábbis ha jól sejtem a tab az alapértelmezett szeparátor a cut-nál, de az egész sort dobja mint első field.
Szóval mit lehetne tenni?
én csak olyan bonyolultabb módszert tudnék, hogy % jellel szeparálok, megnézem az hányadik karakter és kiírom az előző kettőt is, de ez elég bonyolultnak tűnik, és szerintem talán van egyszerűbb megoldás is.
- 829 megtekintés
Hozzászólások
szerintem awk-val legegyszerubb:
$ df | awk '{ if (C>0) print $5; C++; }'
A.
- A hozzászóláshoz be kell jelentkezni
df -h | grep /dev | awk -F" " '{print $5}'
--
by Mikul@s
- A hozzászóláshoz be kell jelentkezni
köszönöm, működik. awk-t sajnos nem ismerem, csak hírből. Azt hiszem pedig érdemes lenne.
- A hozzászóláshoz be kell jelentkezni
Lehet awk nélkül is. Nem kell mindjárt ágyúval lőni a verébre...
Íme:
df | grep dev | tr -s '[:space:]' | cut -f5 -d' '
- waiter -
- A hozzászóláshoz be kell jelentkezni
Hogy legyen egy sed-es megoldás is...
df | sed -n "/[0-9]%/{s/.*[^0-9]\([0-9]\+%\).*/\1/;p}"
--
maszili
- A hozzászóláshoz be kell jelentkezni
es hogy legyen egy for-os megoldas is :)
for i in `df`; do echo $i; done| grep %
- A hozzászóláshoz be kell jelentkezni
Hat ez eleg ronda, es kisse fugg az IFS-tol...
- A hozzászóláshoz be kell jelentkezni