erlug
[Top] [All Lists]

Re: [Erlug] Come tagliare una riga con sed?

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Come tagliare una riga con sed?
From: Davide Brini <db72@xxxxxxxxxxxx>
Date: Sat, 12 Jan 2008 13:15:30 +0100
On Friday 11 January 2008, Davide Bolcioni wrote:

> On Tuesday 08 January 2008 08:44:25 pm sandman42@xxxxxxxxx wrote:
> > Ciao,
> >
> > mi servirebbe, dato un input di questo tipo (df -h):
> >
> > Filesystem            Size  Used Avail Use% Mounted on
> > /dev/hda1             225G   48G  167G  23% /
> > varrun                760M  152K  759M   1% /var/run
> > varlock               760M     0  760M   0% /var/lock
> > udev                  760M   80K  760M   1% /dev
> > devshm                760M     0  760M   0% /dev/shm
> > lrm                   760M   34M  726M   5%
> > /lib/modules/2.6.22-14-generic/volatile /dev/hdb1              73G  
> > 65G 3.6G  95% /media/disk
> >
> > ottenere, per la riga che ha un certo pattern (es /dev/hdb1), uno
> > dei quattro parametri elencati. Pensavo ad un
> >
> > df -h | grep hdb1 | sed .....e qui cosa ci metto?
>
> Se non puoi usare awk, ad esempio perchè non è uno dei comandi
> "essenziali" del FHS e quindi potrebbe non esserci (mai capitato che
> ci fosse sed e non ci fosse awk, ma magari in un contesto embedded
> chissà) si può usare
>
>   df -P | sed -n '/hdb1/  s:^[^ ]* *\([0-9]*\) *\([0-9]*\) *\([0-9]*\)
> *\([0-9]*\)%.*$:\2:p'

Per completezza, allora, anche una soluzione senza sed (senza nulla 
togliere alle altre, ovviamente):

df -h | grep hdb1 | tr -s ' ' | cut -d ' ' -f $n

dove $n e' il numero del campo che si vuole conoscere.

Ciao

<Prev in Thread] Current Thread [Next in Thread>