Recuperer des adresses mail dans un fich txt

Résolu
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   -  
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai besoin d'aide.
voici mon probleme:
j'ai un fichier texte de ce type:
[debut]

aaa = toto@ccm.fr,titi@ccm.fr,tutu@ccm.fr
zebrvz = azor@ccm.fr,tutu@ccm.fr,youpi@ccm.fr
fgsdgf = sdgs@cc.fr,riri@yahou.com

[fin]

-------------------------------------------------------------

j'ai besoin de recuperer uniquement les adresses mail pour pouvoir creer une liste de diffusion (donc separé par des virgules)

j'ai créé des batchs mais quand je les enchaines, je me retrouve avec un fichier vide.

je n'y connais pas grand chose, donc si vous pouviez m'orienter.
Merci

30 réponses

Stef60
 
C'est parfait.
concernant /mnt/lotsfs/ c'etait une erreur.

j'ai pu qu'a automatiser tout ca (avec un cron je crois)
et la cerise serait d'enlever les doublons

Encore une fois, MERCI
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Pour les doublons, rajoute ça :
sed -n '/\[groups\]/,/\[Initiation1/p' fich.in |\
grep -o '[[:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'| uniq |\
sed -e ':a ; N ; $!b a ;s/\n/,/g' > fich.out
;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

je comprend pas ta methode.
je dois ecrire tes commandes directement dans mon fichier??


Oui , tu peux l'ecrire directement dans le fichier.
Mais tu peux aussi l'exécuter directement.
0
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   41
 
la commande uniq n'a rien changé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
voilà dans un fichier

root@debian:~# cat stef.sh
#!/bin/bash
perl -ne 'if (1../\[Initiation/){s/.*=\s*//;s/,/\n/g;print if /\@/}' stef2 | uniq
root@debian:~# cat stef2
[groups]

Adm = thierry-externe.henry@ccm.com,zinedine-externe.zizou@ccm.com,michel.platini@ccm.com
Initiation1 = samir-externe.nasri@ccm.com,karim.benzema@ccm.com
projetTestW = karim.benzema@ccm.com
projetTestR =
projettest2R =
projettest2W = nicolas.anelka@ccm.com

[Initiation1:/]
@Adm = rw
@Initiation1 = r
@Initiation1 = r
* =

[Initiation1:/Trunk/toto]
thierry-externe.henry@ccm.com = rw
* =

[projetTest:/]
@projetTestW=r
@projetTestR=r
@adm=r
* =

le résulat - pas des doublons
root@debian:~# sh stef.sh
thierry-externe.henry@ccm.com
zinedine-externe.zizou@ccm.com
michel.platini@ccm.com
samir-externe.nasri@ccm.com
karim.benzema@ccm.com
nicolas.anelka@ccm.com
--
lami20j
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
avec l'ecriture dans le fichier resultat
root@debian:~# cat stef.sh
#!/bin/bash
perl -ne 'if (1../\[Initiation/){s/.*=\s*//;s/,/\n/g;print if /\@/}' stef2 | uniq > resultat

root@debian:~# sh stef.sh
root@debian:~# cat resultat
thierry-externe.henry@ccm.com
zinedine-externe.zizou@ccm.com
michel.platini@ccm.com
samir-externe.nasri@ccm.com
karim.benzema@ccm.com
nicolas.anelka@ccm.com

0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Oups ;-((

il faut que le fichier soit trié pour repérer les doublons, essaye avec "sort -u" à la place de "uniq" :
sed -n '/\[groups\]/,/\[Initiation1/p' fich.in |grep -o '[[:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'| sort -u
;-))
0
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   41
 
j'essaye de me servir de ta methode, mais je n'y arrive pas.
Je t'explique pourquoi.
mon fichier de depart ne doit pas etre modifié sous peine de planter l'application qui le lit.
De plus, j'ai besoin d'obtenir une liste de diffusion donc les adresse doivent etre separées par une virgule.
C'est quoi stef2
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
root@debian:~# cat fichier
[groups]

Adm = thierry-externe.henry@ccm.com,zinedine-externe.zizou@ccm.com,michel.platini@ccm.com
Initiation1 = samir-externe.nasri@ccm.com,karim.benzema@ccm.com
projetTestW = karim.benzema@ccm.com
projetTestR =
projettest2R =
projettest2W = nicolas.anelka@ccm.com

[Initiation1:/]
@Adm = rw
@Initiation1 = r
@Initiation1 = r
* =

[Initiation1:/Trunk/toto]
thierry-externe.henry@ccm.com = rw
* =

[projetTest:/]
@projetTestW=r
@projetTestR=r
@adm=r
* =

root@debian:~# cat stef.sh
#!/bin/bash
perl -ne 'if (1../\[Initiation/){s/.*=\s*//;s/\n/,/;s/,$//;print if /\@/}' fichier | uniq > resultat

root@debian:~# sh stef.sh
root@debian:~# cat resultat
thierry-externe.henry@ccm.com,zinedine-externe.zizou@ccm.com,michel.platini@ccm.comsamir-externe.nasri@ccm.com,karim.benzema@ccm.comkarim.benzema@ccm.comnicolas.anelka@ccm.com
0
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   41
 
Ca marche impec.

Merci à jipicy et lami20j
les 2 methodes fonctionnent, j'ai pris celle jipicy

et pour info, j'ai meme reussi a faire un cron ;-)

Encore merci pour votre rapidité.
0