Recuperer des adresses mail dans un fich txt
Résolu/Fermé
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
-
20 sept. 2007 à 15:23
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 5 oct. 2007 à 22:46
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 5 oct. 2007 à 22:46
A voir également:
- Recuperer des adresses mail dans un fich txt
- Yahoo mail - Accueil - Mail
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Publipostage mail - Accueil - Word
30 réponses
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 15:36
20 sept. 2007 à 15:36
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.
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
20 sept. 2007 à 15:43
20 sept. 2007 à 15:43
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)
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 15:47
20 sept. 2007 à 15:47
ce fichier txt il est generé par quoi a la base ??
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
20 sept. 2007 à 15:48
20 sept. 2007 à 15:48
J'ai essayé avec sed
avec une boucle while
ca coince toujours
avec une boucle while
ca coince toujours
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
20 sept. 2007 à 15:50
20 sept. 2007 à 15:50
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 = )
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 15:54
20 sept. 2007 à 15:54
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 ?
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
20 sept. 2007 à 16:06
20 sept. 2007 à 16:06
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.
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 17:05
20 sept. 2007 à 17:05
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.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
20 sept. 2007 à 17:13
20 sept. 2007 à 17:13
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;-))
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
20 sept. 2007 à 17:31
20 sept. 2007 à 17:31
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
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
20 sept. 2007 à 17:48
20 sept. 2007 à 17:48
grep -o '[[:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*' fichier.entrée | sed -e ':a ; N ; $!b a ;s/\n/,/g' > fichier.sortie
de plus, il faut que le script s'arrete avant [fin] car sinon il interprete le reste du fichier
Où ?
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 17:40
20 sept. 2007 à 17:40
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:/]
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
20 sept. 2007 à 18:03
20 sept. 2007 à 18:03
sed -n '/\[groups\]/,/\[Initiation1/p' fich.in |\ grep -o '[[:alnum:].-]*@[ [:alnum:]]*.[ [:alpha:]]*'|\ sed -e ':a ; N ; $!b a ;s/\n/,/g' > fich.out;-))
wkm
Messages postés
504
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
10 avril 2010
105
20 sept. 2007 à 17:44
20 sept. 2007 à 17:44
bah si je retrouve mais vieux baths voui je repasserais te donner un exemple.
A+
A+
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
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
20 sept. 2007 à 18:20
20 sept. 2007 à 18:20
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
;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 sept. 2007 à 21:32
20 sept. 2007 à 21:32
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.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
21 sept. 2007 à 11:14
21 sept. 2007 à 11:14
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 ?