[Linuxtrent] Re: awk: usare il carattere " come separatore...

  • From: Steevie <steevie@xxxxxxxxx>
  • To: "linuxtrent@xxxxxxxxxxxxx" <linuxtrent@xxxxxxxxxxxxx>
  • Date: Thu, 23 Jan 2014 09:29:25 +0100

2014/1/23 Fabrizio <fabritrento@xxxxxxxxx>:
> qualcuno sa dirmi come scrivere in bash
>
> sudo blkid |grep sda | awk '{ FS="""; print $3; }'

>
> insomma voglo usare le virgolette come carattere separatore...
>
> ho provato così:
>
> $ sudo blkid |grep sda
> /dev/sda1: UUID="b842abee-3fbf-4347-a451-ec9e0b3b3aa8" TYPE="ext2"
> /dev/sda5: UUID="0Oxvj0-osLb-ilwF-e7d0-oJeK-Za9o-IEsjcW" TYPE="LVM2_member"
> $ sudo blkid |grep sda | awk '{ FS="\""; print $1; }'

> /dev/sda1:
> /dev/sda5: UUID=
> $
>
> ma come vedete non funziona... perchè tratta le 2 righe in modo diverso??
Dipende cosa vuoi fare, una volta usi $1 l'altra $2. In generale, io
preferisco usare -F, però senza = (non so bene perché, dovrei RFTM
:P). Nel tuo caso, credo sia perché awk ha già iniziato a processare
l'input prima di conoscere il FS, infatti:

# blkid |grep sda |awk '{FS="\""; print $2 }'
UUID="6f06cd9a-5244-49b6-b0cf-27afed79259b"
0Drrq8-HB5l-cg92-9FxZ-A8Z1-4T8h-TAzgVZ
5a15d766-dc7c-4196-9840-d2236f54bd2b
77383d38-9d81-45ed-9bb9-b00d28f6acab

Quindi, per ottenere l'UUID:

# blkid |grep sda |awk -F "\"" '{ print $2 }'
6f06cd9a-5244-49b6-b0cf-27afed79259b
0Drrq8-HB5l-cg92-9FxZ-A8Z1-4T8h-TAzgVZ
5a15d766-dc7c-4196-9840-d2236f54bd2b
77383d38-9d81-45ed-9bb9-b00d28f6acab

Per ottenere il tipo di partizione, usa $4 invece di $2.

HTH,
Stefano

-- 
Stefano David, PhD
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: