[Risolto] Estrazione indirizzo email da xml

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
tiopaco

[Risolto] Estrazione indirizzo email da xml

Messaggio da tiopaco »

Ho un problema che non riesco a risolvere, ho un testo dal quale vorrei estrarre un indirizzo email:

Codice: Seleziona tutto

<?xml version="1.0" encoding="UTF-8"?><feed version="0.3" xmlns="http://purl.org/atom/ns#"><title>Gmail - Inbox for pluto@pluto.it</title><tagline>New messages in your Gmail Inbox</tagline><fullcount>1</fullcount><link rel="alternate" href="https://mail.google.com/mail" type="text/html" /><modified>2016-10-24T06:18:70A</modified><entry><title>prova oggetto</title><summary>Testo</summary><link rel="alternate" href="https://mail.google.com/mail?account_id=pluto@pluto.it&message_id=1580e693772326da&view=conv&extsrc=atom" type="text/html" /><modified>2016-10-29T03:08:46Z</modified><issued>2016-10-29T03:08:46Z</issued><id>tag:gmail.google.com,2004:15498467928483754026</id><author><name>Pippo</name><email>pippo@pippo.it</email></author></entry></feed>
Di tutto cio vorrei avere rspettivamente:
La email del mittente: pippo@pippo.it
E il titolo: prova oggetto (Non indispensabile)
Partirei con l' estrarre il mittente...

Ho provato con:

Codice: Seleziona tutto

cat ~/Scrivania/esempio | grep email | cut -d '>' -f 2 | cut -d '<' -f 1 `
Pensavo funzionasse :sisi: , ma no. :(

Perche' e come risolvere?

Grazie
Ultima modifica di tiopaco il sabato 29 ottobre 2016, 16:24, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: Estrazione indirizzo email da xml

Messaggio da crap0101 »

Codice: Seleziona tutto

crap0101@orange:/tmp/foo$ xml2 < in.xml | grep -Po '/entry/.*?/?(email|title)=\K(.*)'
prova oggetto
pippo@pippo.it
ci sono credo anche un altro paio di tool per lavorare con gli xml da command line ma, se non si devono far cose troppo complesse, questo tutto sommato è il più comodo e semplice.

Il comando che hai usato non funziona perchè essendo il testo tutto su un'unica linea il grep greppa *tutto* e i cut su '<' e '>' non sono quelli che stanno intorno ad "email" come vorresti.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
tiopaco

Re: Estrazione indirizzo email da xml

Messaggio da tiopaco »

Ancora grazie crap0101, nel frattempo avevo risolto cosi:

Codice: Seleziona tutto

sed -r 's/.*<email>|<\/email>.*//g'
Funziona.

Unico problema rimasto, se nel testo xml ci sono due o piu' mittenti, come estrarli "tutti"???

Pippo1@test.cz
Pippo2@test.cz
Pippo3@test.cz

:lol:

EDIT:
Metto esempio:

Codice: Seleziona tutto

<?xml version="1.0" encoding="UTF-8"?><feed version="0.3" xmlns="http://purl.org/atom/ns#"><title>Gmail - Inbox for pluto@gmail.com</title><tagline>New messages in your Gmail Inbox</tagline><fullcount>2</fullcount><link rel="alternate" href="https://mail.google.com/mail" type="text/html" /><modified>2016-10-29T12:23:57Z</modified><entry><title>[Forum Ubuntu-it] Notifica di risposta alla discussione - "Estrazione indirizzo email da xml"</title><summary>Salve tiopaco, si riceve questa notifica perché si sta controllando la sezione "Programmazione" su "Forum Ubuntu-it". C'è stata una risposta di crap0101 alla discussione dall</summary><link rel="alternate" href="https://mail.google.com/mail?account_id=pluto@gmail.com&message_id=158105e74627dc61&view=conv&extsrc=atom" type="text/html" /><modified>2016-10-29T12:16:16Z</modified><issued>2016-10-29T12:16:16Z</issued><id>tag:gmail.google.com,2004:1549526247560494669</id><author><name>forum</name><email>forum@ubuntu-it.org</email></author></entry><entry><title>Ennnamooo</title><summary>Whooioioioooohhh</summary><link rel="alternate" href="https://mail.google.com/mail?account_id=pluto@gmail.com&message_id=158104b165067841&view=conv&extsrc=atom" type="text/html" /><modified>2016-10-29T11:55:06Z</modified><issued>2016-10-29T11:55:06Z</issued><id>tag:gmail.google.com,2004:1549524906475806593</id><author><name>pippo1</name><email>pippo1@pippo1.it</email></author></entry></feed>
Ecco da qui vorrei estrarre:
pippo1@pippo1.it
forum@ubuntu-it.org
Ma potrebbero essere 3 o 4 mittenti, email differenti ovviamente etc...
pippo2@pippo2.it
................

Questo non ho proprio idea di come poterlo fare...
Pike
Rampante Reduce
Rampante Reduce
Messaggi: 5460
Iscrizione: domenica 20 gennaio 2008, 1:13
Desktop: Kubuntu
Distribuzione: 20.04 x64
Contatti:

Re: Estrazione indirizzo email da xml

Messaggio da Pike »

I tag degli indirizzi email sono conosciuti? Se la risposta è sì... diventa più fattibile il parser ;)
Sono colui che fa cose che non servono...
Secondo Principio di Dilbert, di Scott Adams. "Si parte dalla certezza che siamo tutti idioti". Ed alcuni su questo mi ab-battono alla grande.
Come certificato dalla moderazione, incivile e maleducato. You have been warned.
tiopaco

Re: Estrazione indirizzo email da xml

Messaggio da tiopaco »

Ciao, non ho idea di cosa parli.

Se non si tratta di installare software ma di fare da line di comando, con l' esempio che ho scritto, mi dai il comando?

L' esempio del file che vorrei elaborare per estrarre i mittenti sta nel post di sopra.

Per un unico mittente ho gia' soluzionato ed anche crap0101 mi ha dato un altra soluzione.

Per il multimittente sto in alto mare.

Grazie
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Estrazione indirizzo email da xml

Messaggio da rai »

Non riesco a trovarla ma c'è una discussione simile a questa dove avevo postato uno script python che tirava fuori degli url dagli xml

Poi è intervenuto crap0101 suggerendo di usare uno strumento fatto apposta:

Codice: Seleziona tutto

sudo apt-get install xml2
cat file.xml | xml2 | grep -Po 'email=\K(.*)' 
Ecco la discussione: http://forum.ubuntu-it.org/viewtopic.php?p=4873393
Ultima modifica di rai il sabato 29 ottobre 2016, 16:26, modificato 1 volta in totale.
tiopaco

Re: Estrazione indirizzo email da xml

Messaggio da tiopaco »

Ops!!

Grazie mille ragazzi!!!
tiopaco

Re: Estrazione indirizzo email da xml

Messaggio da tiopaco »

Vista grazie ancora.

Dovro fare ricerche per apprendere un po come si usa questo xml2

Sara' molto utile in certi casi e me lo appunto ;)

Era da molto che non usavo il computer, ora per svariate circostanze ho ripreso e devo rimettermi, per cosi dire, in forma.

Sono ripartito da Ubuntu 16.04 LTS che trovo molto migliorata anche come pesantezza e gia' pronta all' uso, diciamo cosi, per molte cose. Per questo ora sara' piu' facile per chi non ha mai utilizzato una distro Linux avvicinarsi al nostro mondo, interessante direi.

Anche se vedo che andando avanti con il tempo si sta chiudendo un pochino, un esempio stupido e' non poter agire sui pannelli con un clik, ma tutto non si puo' avere...

Buona giornata ragazzi.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2848
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: Estrazione indirizzo email da xml

Messaggio da rai »

tiopaco ha scritto:Dovro fare ricerche per apprendere un po come si usa questo xml2
Non c'è granché da studiare ;) non ha nemmeno opzioni o switch
"traduce" il formato xml dell' input in un formato specifico, che usa solo lui e che vedi semplicemente togliendo la pipe e il grep dalla riga di comando
tiopaco

Re: [Risolto] Estrazione indirizzo email da xml

Messaggio da tiopaco »

:sherlock: ahahah grazie ancora.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti