bash: rilevare una stringa
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
bash: rilevare una stringa
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!
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!
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: bash: rilevare una stringa
Codice: Seleziona tutto
var=`grep -m 1 "PippoPaperino" nome_file`- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
Re: bash: rilevare una stringa
Ok, grazie ma così mi viene memorizzata tutta la stringa dove si trova PippoPaperino!
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: bash: rilevare una stringa
Scusa, sono un po' sbadato
.
Prova così:
Prova così:
Codice: Seleziona tutto
var=`grep -m 1 "PippoPaperino" nome_file | cut -d "\"" -f 2`- shark1500
- Linux 3.x

- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: bash: rilevare una stringa
Codice: Seleziona tutto
var=$(grep -m 1 "PippoPaperino" nome_file | gawk -F'"' '{ print $2 }')Codice: Seleziona tutto
. nome_file && echo $NomeCognomePero` non conosco il contesto quindi do la mia risposta
- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
Re: bash: rilevare una stringa
Ansa89 ha scritto:Scusa, sono un po' sbadato.
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!
- shark1500
- Linux 3.x

- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: bash: rilevare una stringa
Sostituisci "PippoPaperino" con "NomeCognome", almeno quella la saprai, o no?
- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
Re: bash: rilevare una stringa
Ok... ma essendoci prima altri campi delimitati da "" vedo il primo della riga....
ad esempio CodiceFiscale="VFDFSF" NomeCognome="PippoPaperino"
mi restituisce VFDFSF
thanks!
ad esempio CodiceFiscale="VFDFSF" NomeCognome="PippoPaperino"
mi restituisce VFDFSF
thanks!
- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: bash: rilevare una stringa
Codice: Seleziona tutto
var=`grep -m 1 "NomeCognome" nome_file | cut -d "\"" -f 4`- shark1500
- Linux 3.x

- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: bash: rilevare una stringa
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, cosi` non e` piu` tutto sulla stessa riga.
Per fare una cosa generica consiglio di usare quello di prima, pero` prima devi fare un
Codice: Seleziona tutto
sed s/ /\n/g- Ansa89
- Iper Master

- Messaggi: 2703
- Iscritto il: mer 29 ago 2007, 17:57
- Nome Cognome: Stefano Ansaloni
- Slackware: 14.2 64bit
- Kernel: 4.9.61
- Desktop: XFCE 4.12
- Località: Modena
Re: bash: rilevare una stringa
Sperando che tra il nome e il cognome non ci siano spazishark1500 ha scritto:Per fare una cosa generica consiglio di usare quello di prima, pero` prima devi fare un, cosi` non e` piu` tutto sulla stessa riga.Codice: Seleziona tutto
sed s/ /\n/g
- shark1500
- Linux 3.x

- Messaggi: 785
- Iscritto il: gio 3 apr 2008, 14:33
- Slackware: current
- Kernel: 2.6.27.7-smp
- Desktop: kde
- Località: Modna
Re: bash: rilevare una stringa
Se si vuole fare una cosa fatta per bene mi sa che non basta una riga di codice come stiamo facendo noi 
- Absolut
- Linux 4.x

- Messaggi: 1465
- Iscritto il: gio 10 feb 2005, 0:00
- Slackware: current
- Località: Roma
Re: bash: rilevare una stringa
Ciao ragazzi,
grazie al vostro aiuto.. sono riuscito in quello che volevo:
grazie intanto per l'aiuto!
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!