Live Support My forum, my way! Il forum dei newsgroup: Linux » awk fa una cosa strana
My forum, my way! Il forum dei newsgroup
Fast Uncompromising Discussions.Newsgroup FUDforum will get your users talking.

Loading
Utenti      F.A.Q.    Registrati    Login    Home
Home » Computer » Linux » awk fa una cosa strana
awk fa una cosa strana [messaggio #33825] ven, 26 novembre 2010 00:58 Messaggio successivo
Dalet  è attualmente disconnesso Dalet
Messaggi: 210
Registrato: novembre 2010
Senior Member
Il file file ha queste tre esatte righe:
pippo; pluto
topolino; blabla; bla
terza; 2010

se do:
cat file | awk '{FS=";"; print $1}'

mi da':
pippo;
topolino
terza

allora faccio cosi' la prima riga:
a pippo; pluto

e mi da' solo a alla prima riga

allora aggiungo una riga bianca in testa e finalmente
va tutto Ok, perche' tutto questo?

--
Saluti, Dalet
Re: awk fa una cosa strana [messaggio #33828 è una risposta a message #33825] ven, 26 novembre 2010 04:34 Messaggio precedenteMessaggio successivo
Mario M. Macaluso  è attualmente disconnesso Mario M. Macaluso
Messaggi: 10
Registrato: novembre 2010
Junior Member
On 26 Nov, 00:58, Dalet <da...@address.invalid> wrote:
> Il file file ha queste tre esatte righe:
> pippo; pluto
> topolino; blabla; bla
> terza; 2010
>
> se do:
> cat file | awk '{FS=";"; print $1}'

awk -F ";" '{ .... }'
awk 'BEGIN { FS=";"; } { .... }'
Re: awk fa una cosa strana [messaggio #33835 è una risposta a message #33828] ven, 26 novembre 2010 14:32 Messaggio precedenteMessaggio successivo
Dalet  è attualmente disconnesso Dalet
Messaggi: 210
Registrato: novembre 2010
Senior Member
Il 26-11-2010, Mario M. Macaluso dice:
>On 26 Nov, 00:58, Dalet <da...@address.invalid> wrote:

>>Il file file ha queste tre esatte righe:
>>pippo; pluto
>>topolino; blabla; bla
>>terza; 2010
>>se do:
>>cat file | awk '{FS=";"; print $1}'

>awk -F ";" '{ .... }'
>awk 'BEGIN { FS=";"; } { .... }'

Perfette entrambe grazie!
Mi resta la curiosita' di capire perche' dando il Field
Separator come opzione -F non salta piu' la prima riga,
nella quale invece, con l'FS come lo davo io, evidentemente
applicava il default che e' spazio.
Dovro' studiarmi pure la direttiva BEGIN, arigrazie!

--
Saluti, Dalet
Re: awk fa una cosa strana [messaggio #33836 è una risposta a message #33835] ven, 26 novembre 2010 14:53 Messaggio precedenteMessaggio successivo
Alessandro Selli  è attualmente disconnesso Alessandro Selli
Messaggi: 242
Registrato: novembre 2010
Senior Member
Dalet ha scritto:
> Il 26-11-2010, Mario M. Macaluso dice:
>> On 26 Nov, 00:58, Dalet <da...@address.invalid> wrote:
>
>>> Il file file ha queste tre esatte righe:
>>> pippo; pluto
>>> topolino; blabla; bla
>>> terza; 2010
>>> se do:
>>> cat file | awk '{FS=";"; print $1}'
>
>> awk -F ";" '{ .... }'
>> awk 'BEGIN { FS=";"; } { .... }'
>
> Perfette entrambe grazie!
> Mi resta la curiosita' di capire perche' dando il Field
> Separator come opzione -F non salta piu' la prima riga,
> nella quale invece, con l'FS come lo davo io, evidentemente
> applicava il default che e' spazio.

Perché quando fai awk '{FS=";"; print $1}' file (a proposito, fare cat
file | awk è un Uso Inutile di Cat®) la variabile FS è reinizializzata
*dopo* che awk si è letto e caricato nel buffer la prima riga dell'input.
Ossia dopo che ha scomposto la prima riga nei suoi campi separati dalla FS
di default. Siccome per ogni riga letta la variabile FS che ti serve è
costante, questa va inizializzata prima della lettura della prima riga
(ossia prima che awk esegua la prima esecuzione dello script) e non serve
che sia mai più cambiata per tutta l'esecuzione dello script. Per cui, la
devi inizializzare prima dello script, non durante.

Per farlo hai due metodi: usi uno switch specifico di awk, -F, oppure usi
la clausola BEGIN, che è eseguita una sola volta prima della prima
esecuzione dello script (e quindi prima della lettura della prima riga
dell'input).


Ciao,


--
Alessandro Selli, http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B
Re: awk fa una cosa strana [messaggio #33840 è una risposta a message #33836] ven, 26 novembre 2010 16:19 Messaggio precedenteMessaggio successivo
Dalet  è attualmente disconnesso Dalet
Messaggi: 210
Registrato: novembre 2010
Senior Member
Il 26-11-2010, Alessandro Selli dice:
>Dalet ha scritto:

>>Mi resta la curiosita' di capire perche' dando il Field
>>Separator come opzione -F non salta piu' la prima riga,
>>nella quale invece, con l'FS come lo davo io, evidentemente
>>applicava il default che e' spazio.

>Perché quando fai awk '{FS=";"; print $1}' file (a proposito, fare cat
>file | awk è un Uso Inutile di Cat®) la variabile FS è reinizializzata
[........]

Ok & Thx, per pigrizia non l'ho guardato mai, anche per grep
sono andato avanti per anni dando cat | grep.
Cos'e' l'UIC con tanto di marchio registrato? non sara'
qualche diavoleria di Jargon?

Molte grazie per la totale spiegazione di awk!!

--
Saluti, Dalet
Re: awk fa una cosa strana [messaggio #33846 è una risposta a message #33840] ven, 26 novembre 2010 20:17 Messaggio precedenteMessaggio successivo
Alessandro Selli  è attualmente disconnesso Alessandro Selli
Messaggi: 242
Registrato: novembre 2010
Senior Member
Dalet ha scritto:

> Cos'e' l'UIC con tanto di marchio registrato? non sara'
> qualche diavoleria di Jargon?

Ebbene si! Come poteva essere altrimenti? :-)

Signore e Signori, benvenuti nel fantastico e fantasmagorico mondo
dell'UUOC,

°°########################°°
°°## USELESS USE OF CAT ##°°
°°########################°°

http://partmaps.org/era/unix/award.html

dove sono con estrema generosità elargiti i settimanali premi

_____________________
< USO INUTILE DI CAT! >
---------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||


tra i tanti altri premi che i disgraziati programmatori, ma forse
dovremmo chiamarli programmabufali, di shell UNIX si sono nel tempo
meritati grazie alla loro prolungata, continuata, pervicace, insistente
e inusitatamente cocciuta ostinazione nel fare cose inutili e complicare
futilmente le operazioni più banali!

Ringraziamo con commossa gratitudine il grande Randal L. Schwartz,
programmatore Perl e maestro di tanti programmatori di script alla
ricerca della perfezione formale e stilistica delle loro opere
shelliche, per aver istituito nel 1995 il premio settimanale UUOC sul
Newsgroup comp.unix.shell dove ha a lungo personalmente provveduto alla
valutazione e selezione del migliore esempio di UUCP che ogni settimana
si sarebbe aggiudicato il NON ambito premio per gl'indiscussi meriti di
alta superficialità, pressapochismo, mancata comprensione degli
strumenti del mestiere e inutile accatastamento di processi e
affastellamento di ridondanti costrutti di shell!

> Molte grazie per la totale spiegazione di awk!!

Prego, che il Gran Pinguino ti assita e ti sorvegli, perché tu non
possa mai cadere in background!


Ciao,


--
Alessandro Selli http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Re: awk fa una cosa strana [messaggio #33847 è una risposta a message #33846] ven, 26 novembre 2010 21:18 Messaggio precedenteMessaggio successivo
Dalet  è attualmente disconnesso Dalet
Messaggi: 210
Registrato: novembre 2010
Senior Member
Il 26-11-2010, Alessandro Selli dice:

>http://partmaps.org/era/unix/award.html

Bellissimo!!

>dove sono con estrema generosità elargiti i settimanali premi

> _____________________
>< USO INUTILE DI CAT! >
> ---------------------
> \ ^__^
> \ (oo)\_______
> (__)\ )\/\
> ||----w |
> || ||
>tra i tanti altri premi che i disgraziati programmatori, ma forse
>dovremmo chiamarli programmabufali, di shell UNIX si sono nel tempo
>meritati grazie alla loro prolungata, continuata, pervicace, insistente
>e inusitatamente cocciuta ostinazione nel fare cose inutili e complicare
>futilmente le operazioni più banali!

LOL!!

--
Saluti, Dalet
Re: awk fa una cosa strana [messaggio #33854 è una risposta a message #33847] sab, 27 novembre 2010 10:28 Messaggio precedente
Alessandro Selli  è attualmente disconnesso Alessandro Selli
Messaggi: 242
Registrato: novembre 2010
Senior Member
Dalet ha scritto:
> Il 26-11-2010, Alessandro Selli dice:
>
>> http://partmaps.org/era/unix/award.html
>
> Bellissimo!!

Chi sostiene che l'informatica sia arida, mancante di creatività
artistica e che sia un ambiente privo di socialità parla o per ignoranza
o per invidia! :-)


Ciao,


--
Alessandro Selli http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Argomento precedente:Re: openSUSE dimentica la configurazione di schermi multipli
Argomento successivo:Quale Distro con repository +ricchi
Vai al forum:
  


Ora corrente: mar mag 07 18:11:44 CEST 2024

Tempo totale richiesto per generare la pagina: 0.00512 secondi
.:: Contatti :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Live Support