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 -
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
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
A voir également:
- Recuperer des adresses mail dans un fich txt
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment récupérer un compte facebook piraté - Guide
- Créer une adresse mail hotmail - Guide
- Comment récupérer son compte psn sans adresse mail - Forum Jeux vidéo
30 réponses
bah pourquoi pas utiliser excel ou open office table pour en faire un tableau que tu pourrais definir automatiquement au virgule et apres tu pourra repasser ca plus facilement en liste. Enfin c est qu une idée a tester.
C'est une bonne idée.
J'avais ca la premiere fois. ca m'a pris 1h30.
Dans mon exemple y'a 10 adresses, en vrai, il y en a 300.
Comme ce fichier change souvent, je dois automatiser le processus.
je precise que mon ficher se trouve sur un serveur linux (subversion)
et donc j'ai essayé de faire un script en shell (sh) mais c'est compliqué (enfin pour moi)
J'avais ca la premiere fois. ca m'a pris 1h30.
Dans mon exemple y'a 10 adresses, en vrai, il y en a 300.
Comme ce fichier change souvent, je dois automatiser le processus.
je precise que mon ficher se trouve sur un serveur linux (subversion)
et donc j'ai essayé de faire un script en shell (sh) mais c'est compliqué (enfin pour moi)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
le fichier texte n'est generé par rien.
il est modifié manuellement.
En fait, en ajoutant les adresses mail, on autorise l'accés au projet (ce qu'il y a avant le = )
il est modifié manuellement.
En fait, en ajoutant les adresses mail, on autorise l'accés au projet (ce qu'il y a avant le = )
je sais que la question est "c.." mais il y a beaucoup de projets ? et te faut il une liste de diffusion par liste ou une global et si une global je suppose qu il faut gerer les doublon ?
oui il y'a beaucoup de projet, 50 environ.
On me demande une liste de diff globale (pour l'instant)
mais je suis aussi preneur pour une liste par projet ( :-)
Pour les doublons, cela serait un plus de les supprimer via le script.
Mais a vrai dire, Lotus Notes peut s'en charger.
Pour la petite histoire, on me demande ca car le serveur est tomber en panne lundi.
Et evidemment on avait de liste de diff pour avertir les utilisateurs.
Et on ne pouvait meme pas en créér une puisque les comptes des utilisateurs sont dans ce fichier.
On me demande une liste de diff globale (pour l'instant)
mais je suis aussi preneur pour une liste par projet ( :-)
Pour les doublons, cela serait un plus de les supprimer via le script.
Mais a vrai dire, Lotus Notes peut s'en charger.
Pour la petite histoire, on me demande ca car le serveur est tomber en panne lundi.
Et evidemment on avait de liste de diff pour avertir les utilisateurs.
Et on ne pouvait meme pas en créér une puisque les comptes des utilisateurs sont dans ce fichier.
Ce que j ai du mal a comprendre c est que je vois pas pourquoi ne pas le faire via un simple bloc note c est vrai que ca peut etre long mais en etant honnete tu n as que 50 fois a remplacer "aaa =" par une virgule pour que ton fichier soit bon mais j ai tout de meme cherché un peu et du cou j ai trouvé un soft qui peut t interresser.
Net Tools
Voila tu as dedans une option qui s appelle Local email extractor pour la trouver une fois le soft lancé tape sur F3 et cherche extract elle serra dans la liste.
Net Tools
Voila tu as dedans une option qui s appelle Local email extractor pour la trouver une fois le soft lancé tape sur F3 et cherche extract elle serra dans la liste.
Salut,
L'espace entres les deux crochets "[ [" doit être enlevé "[[", il n'est mis ici que pour empêcher l'interprétation du code...
L'espace entres les deux crochets "[ [" doit être enlevé "[[", il n'est mis ici que pour empêcher l'interprétation du code...
grep -o '[ [:alnum:]]*@[ [:alnum:]]*.[ [:alpha:]]*' fichier.entrée | sed -e ':a ; N ; $!b a ;s/\n/,/g' > fichier.sortie;-))
wkm,
comme je te l'ai dit, ta methode fonctionne c'est certain.
Mais comme je suis tetu, que je veux apprendre le shell et que la bidouille manuelle ce n'est pas professionnelle
je veux reussir un script sh.
jipicy:
ta commande marche pas mal meme si je comprend pas tout.
mais le resultat ne me convient pas.
j'aurai peut-etre du dire que j'ai des adresses mail du type thierry-externe.henry@ccm.com
de plus, il faut que le script s'arrete avant [fin] car sinon il interprete le reste du fichier
comme je te l'ai dit, ta methode fonctionne c'est certain.
Mais comme je suis tetu, que je veux apprendre le shell et que la bidouille manuelle ce n'est pas professionnelle
je veux reussir un script sh.
jipicy:
ta commande marche pas mal meme si je comprend pas tout.
mais le resultat ne me convient pas.
j'aurai peut-etre du dire que j'ai des adresses mail du type thierry-externe.henry@ccm.com
de plus, il faut que le script s'arrete avant [fin] car sinon il interprete le reste du fichier
j ai bien compri Stef60, d ailleur moi aussi il faudrait que je me repanche un peu sur le script mais je ne fasais que te donner le nom d'un soft qui a certainement beaucoup de fonction que tu peu rechercher un jour. Et qui en plus fait tout seul ce que tu cherchais.
Sur ces mots bon courage dans ton apprentissage.
Sur ces mots bon courage dans ton apprentissage.
je met un reel exemple du 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
* =
------------------------------------------------fin du fichier
j'ai besoin de recuperer les mails situés entre [groups] et [Initiation1:/]
-------------------------------------------------------------------------
[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
* =
------------------------------------------------fin du fichier
j'ai besoin de recuperer les mails situés entre [groups] et [Initiation1:/]
j'ai mis un exemple concret du fichier a traiter
voici le resultat que j'obtiens avec ta commande:
henry@ccm.com,zizou@ccm.com,platini@ccm.com,nasri@ccm.com,benzema@ccm.com,benzema@ccm.com,anelka@ccm.com,@Adm ,@Initiation1 ,@Initiation1 ,henry@ccm.com,@projetTestW=r,@projetTestR=r,@adm=r
or, je veux que le script s'arrete avant [Initiation1:/] sinon il affiche des mails qui n'existent pas (@adm,@Initiation1....)
voici le resultat que j'obtiens avec ta commande:
henry@ccm.com,zizou@ccm.com,platini@ccm.com,nasri@ccm.com,benzema@ccm.com,benzema@ccm.com,anelka@ccm.com,@Adm ,@Initiation1 ,@Initiation1 ,henry@ccm.com,@projetTestW=r,@projetTestR=r,@adm=r
or, je veux que le script s'arrete avant [Initiation1:/] sinon il affiche des mails qui n'existent pas (@adm,@Initiation1....)
ca fonctionne (en tout cas sur le fichier exemple).
tu peux m'expliquer a quoi sert | ?
visiblement a enchainer les commandes ??
en tout cas merci.
et je repasse demain pour plus d'info.
Bonne soirée
tu peux m'expliquer a quoi sert | ?
visiblement a enchainer les commandes ??
en tout cas merci.
et je repasse demain pour plus d'info.
Bonne soirée
Tu peux m'expliquer a quoi sert | ?
visiblement a enchainer les commandes ??
Exact, voir à ce sujet : guide d utilisation du shell pour debutant#les pipelines
;-))
visiblement a enchainer les commandes ??
Exact, voir à ce sujet : guide d utilisation du shell pour debutant#les pipelines
;-))
Salut,
$ 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 * = $ perl -ne 'if (1../\[Initiation/){s/.*=\s*//;s/,/\n/g;print if /\@/}' stef2 > adresse $ cat adresse thierry-externe.henry@ccm.com zinedine-externe.zizou@ccm.com michel.platini@ccm.com samir-externe.nasri@ccm.com karim.benzema@ccm.com karim.benzema@ccm.com nicolas.anelka@ccm.com
salut lami20j
je comprend pas ta methode.
je dois ecrire tes commandes directement dans mon fichier??
jipicy,
ton code marche du feu de dieu.
maintenant il faut que j'enchaine en copiant le fichier fich.out vers un serveur windows.
j'ai fait ca:
------------------------------------------------------------------------------
#! /bin/bash
sed -n '/\[groups\]/,/\[\//p' per.txt |\
grep -o '[ [:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'|\
sed -e ':a ; N ; $!b a ;s/\n/,/g' > mail.txt|\
smbmount //serveurWIN/partage$ /mnt/mail/ -o credentials=/etc/samba/passwd.conf |\
cp /svn/mail.txt /mnt/lotsfs/ |\
smbumount /mnt/mail/
-------------------------------------------------------------------------------------------
quand je regarde sur le serveur WIN, j'ai bien un fichier mail.txt mais vide.
je comprend pas ta methode.
je dois ecrire tes commandes directement dans mon fichier??
jipicy,
ton code marche du feu de dieu.
maintenant il faut que j'enchaine en copiant le fichier fich.out vers un serveur windows.
j'ai fait ca:
------------------------------------------------------------------------------
#! /bin/bash
sed -n '/\[groups\]/,/\[\//p' per.txt |\
grep -o '[ [:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'|\
sed -e ':a ; N ; $!b a ;s/\n/,/g' > mail.txt|\
smbmount //serveurWIN/partage$ /mnt/mail/ -o credentials=/etc/samba/passwd.conf |\
cp /svn/mail.txt /mnt/lotsfs/ |\
smbumount /mnt/mail/
-------------------------------------------------------------------------------------------
quand je regarde sur le serveur WIN, j'ai bien un fichier mail.txt mais vide.
Re-
Attention !!! Les pipes ( | ) ne servent que pour faire transiter le résultat d'une commande vers une autre et non pas à enchainer des commandes comme tu essaies de le faire.
Essaie plutôt d'écrire ton script comme suit :
Attention !!! Les pipes ( | ) ne servent que pour faire transiter le résultat d'une commande vers une autre et non pas à enchainer des commandes comme tu essaies de le faire.
Essaie plutôt d'écrire ton script comme suit :
#! /bin/bash sed -n '/\[groups\]/,/\[\//p' per.txt |\ grep -o '[ [:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'|\ sed -e ':a ; N ; $!b a ;s/\n/,/g' > mail.txt smbmount //serveurWIN/partage$ /mnt/mail/ -o credentials=/etc/samba/passwd.conf if [ -d "/mnt/mail" ] then cp /svn/mail.txt /mnt/mail/ smbumount /mnt/mail/ else echo "Erreur ! Le répertoire n'existe pas." fiDe plus, tu montes ce répertoire "/mnt/mail/" et t'essaie de copier le fichier dans celui-là "/mnt/lotsfs/" !? C'est un lien symbolique ? C'est voulu ? ou c'est une erreur ?