[PLUTO-help] Re: awk

sabatino sabatino.palladino a aliceposta.it
Lun 4 Dic 2006 09:41:57 CET


Alle 15:23, venerdì 1 dicembre 2006, Gian Uberto Lauri ha scritto:
> >>>>> "AB" == Andrea Bencini <andrea.bencini a tin.it> writes:
>
> AB> Ho trovato (mi hannodato) queste soluzioni che funzionano
> AB> ACC_INFO=`awk /$RIC/' { print $3 }' /etc/passwd`
> AB> ACC_INFO=`awk '/'$RIC'/ { print $3 }' /etc/passwd`
> AB> ACC_INFO=$(awk "/$RIC/ {print \$3 }" /etc/passwd)
>
> L'unica che funziona con gawk è la  terza...
> che  ricordi io  il pattern  di selezione 
> della riga è all'interno delle istruzioni awk, non prima.


Fatto sta che io ho provato tutte e tre le 
espressioni e funzionano.

Allora, la sintassi di awk è:
Prima vanno le opzioni (che sono facoltative).
Se non è specificata l'opzione -f allora il 
primo argomento che non e` una opzione è 
una stringa contenente il programma.
Gli argomenti successivi sono file
Se è specificata l'opzione -f... et cetera

Ora il programma contiene degli spazi
e bisogna passarlo come una stringa ad
awk (tutte le versioni, non sola la gawk)
e da questo deriva la necessità di usare 
le virgolette o gli apici per delimitare 
il programma.
Ma questo è un affare della shell, non vedo 
cosa ci azzecca usare gawk o meno.

I tre modi proposti per il programma sono 
solo alcuni modi validi per passare una 
stringa unica effettuando una espansione dei
parametri, ne esistono altri e solo la fantasia 
del programmatore ne limita il numero.
 I primi due metodi non funzionano se l'espansione 
della variabile $RIC contiene uno spazio ma questo,
torno a ripetere, è affare della shell, gawk non 
ci azzecca niente.


-- 
Sabatino
......
Non voglio i mille baci che diede Lesbia a Catullo,
pochi baci vuole chi riesce a contarli.
				M. Valerio Marziale
				  (versione libera)



More information about the pluto-help mailing list