Pagina 1 di 1

bash: rilevare una stringa

Inviato: sab 11 set 2010, 16:15
da Absolut
Ciao ragazzi,

ho un file, in cui ad una certa linea vi è un campo NomeCognome="PippoPaperino"

Quello che dovrei fare è rilevare PippoPaperino e assegnarlo a una variabile. Tenete presente che PippoPaperino può essere ovviamente qualsiasi stringa.

sapreste indicarmi come?

thansk!

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 16:20
da Ansa89

Codice: Seleziona tutto

var=`grep -m 1 "PippoPaperino" nome_file`

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 16:35
da Absolut
Ok, grazie ma così mi viene memorizzata tutta la stringa dove si trova PippoPaperino!

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 16:38
da Ansa89
Scusa, sono un po' sbadato :roll: .
Prova così:

Codice: Seleziona tutto

var=`grep -m 1 "PippoPaperino" nome_file | cut -d "\"" -f 2`

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 16:41
da shark1500

Codice: Seleziona tutto

var=$(grep -m 1 "PippoPaperino" nome_file | gawk -F'"' '{ print $2 }')
Cosi` dovrebbe funzionare, ma non ho ben capito il senso, cioe`, se ad esempio fai

Codice: Seleziona tutto

. nome_file && echo $NomeCognome
hai comunque la stringa.

Pero` non conosco il contesto quindi do la mia risposta

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:02
da Absolut
Ansa89 ha scritto:Scusa, sono un po' sbadato :roll: .
Prova così:

Codice: Seleziona tutto

var=`grep -m 1 "PippoPaperino" nome_file | cut -d "\"" -f 2`

ok sembra funzionare... ma in realtà io non so che li c'è scritto PippoPaperino.. esattamente dovrei prendere:

NomeCognome="xxxx"

dove xxx sta per una qualsiasi stringa...... alfanumerica!


thanks intanto ragazzi!

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:07
da shark1500
Sostituisci "PippoPaperino" con "NomeCognome", almeno quella la saprai, o no?

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:23
da Absolut
Ok... ma essendoci prima altri campi delimitati da "" vedo il primo della riga....

ad esempio CodiceFiscale="VFDFSF" NomeCognome="PippoPaperino"

mi restituisce VFDFSF


thanks!

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:30
da Ansa89

Codice: Seleziona tutto

var=`grep -m 1 "NomeCognome" nome_file | cut -d "\"" -f 4`

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:43
da shark1500
No ansa, il tuo non e` generico, funziona sempre in quel caso specifico.

Per fare una cosa generica consiglio di usare quello di prima, pero` prima devi fare un

Codice: Seleziona tutto

sed s/ /\n/g
, cosi` non e` piu` tutto sulla stessa riga.

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 17:53
da Ansa89
shark1500 ha scritto:Per fare una cosa generica consiglio di usare quello di prima, pero` prima devi fare un

Codice: Seleziona tutto

sed s/ /\n/g
, cosi` non e` piu` tutto sulla stessa riga.
Sperando che tra il nome e il cognome non ci siano spazi :roll: .

Re: bash: rilevare una stringa

Inviato: sab 11 set 2010, 23:07
da shark1500
Se si vuole fare una cosa fatta per bene mi sa che non basta una riga di codice come stiamo facendo noi :-)

Re: bash: rilevare una stringa

Inviato: dom 12 set 2010, 16:18
da Absolut
Ciao ragazzi,

grazie al vostro aiuto.. sono riuscito in quello che volevo:

Codice: Seleziona tutto

grep -m 1 -o "NomeCognome=\"[a-zA-Z0-9._]*\"" | gawk -F'"' '{ print $2 }')

grazie intanto per l'aiuto!