Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/09/2006, à 11:26

next-d

extraire des infos d'un fichier txt

je veux retirer ts les emails d'un fichier (txt ou cvs ou xls)
quel est le maniere facon et la plus simple?

quel est le meilleur language?

un coup de main serait le bien venu

Hors ligne

#2 Le 21/09/2006, à 11:30

Valère

Re : extraire des infos d'un fichier txt

tu as posté dans la mauvaise section wink


1984 was not supposed to be an instruction manual
hostux.net serveur mail/jabber + hébergement d'images.

Hors ligne

#3 Le 21/09/2006, à 12:11

next-d

Re : extraire des infos d'un fichier txt

c'est dans koi alors

Hors ligne

#4 Le 21/09/2006, à 12:17

Valère

Re : extraire des infos d'un fichier txt

Un modérateur a déplacé le sujet dans une partie plus appropriée du forum comme tu as du t'en apercevoir wink


1984 was not supposed to be an instruction manual
hostux.net serveur mail/jabber + hébergement d'images.

Hors ligne

#5 Le 21/09/2006, à 12:37

kaworu

Re : extraire des infos d'un fichier txt

va donne un exemple de ton fichier txt parce que là c'est vague. Perso je ferai un petit script bash.


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#6 Le 21/09/2006, à 19:26

next-d

Re : extraire des infos d'un fichier txt

exemple de fichier txt

Maire : M. xxxx xxxxxx
PLACE ROBERT MARCEPOIL
01500 AMBERIEU EN BUGEY
Tél. : 0474461700
Fax 0474383619
Email xxxxxx.xxxxxx@wanadoo.fr
Internet www.ville­amberieuenbugey.fr
POPULATION 11927


voila pour les fichiers txt.. smile
attention c'est pas forcement la meme dispositions

Dernière modification par next-d (Le 21/09/2006, à 19:27)

Hors ligne

#7 Le 21/09/2006, à 20:57

kaworu

Re : extraire des infos d'un fichier txt

Ton but c'est d'avoir une liste d'email sans les noms etc.. correct ?
Si c'est juste ça :

grep "^Email" ton_fichier.txt | cut -d" " -f 2

ça devrait faire l'affaire non ?
Si non, donne aussi un exemple de la sortie que tu veux ...

Dernière modification par kaworu (Le 21/09/2006, à 20:58)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#8 Le 22/09/2006, à 07:26

next-d

Re : extraire des infos d'un fichier txt

merci je vais tester mais je veux bien une petite explication smile

Hors ligne

#9 Le 22/09/2006, à 07:52

roozeec

Re : extraire des infos d'un fichier txt

grep "^Email" ton_fichier.txt : Rechercher une ligne avec Email en debut de ligne (caractere ^)

cut -d" " -f 2 : Prendre le champs 2 en declarant que le separateur de champ est un espace

le | signifie la sortie de grep va vers le cut (pipe unix)


Linux sur  http://blog.roozeec.fr
Réseau : http://ubuntu-francophone.ning.com

Hors ligne

#10 Le 22/09/2006, à 12:12

bapoumba

Re : extraire des infos d'un fichier txt

Déplacé dans Développement-Programmation smile


| Ubuntu Forums |
J'aime les fraises.

Hors ligne

#11 Le 22/09/2006, à 13:20

next-d

Re : extraire des infos d'un fichier txt

voila le resultat:

Email
:
Email
Email
Email
secretariat.general
:
xxxx@free.fr

ca merde un peu

on ne peut pas faire une recherche uniquement sur les @ non?

Hors ligne

#12 Le 22/09/2006, à 13:30

cep

Re : extraire des infos d'un fichier txt

grep  "Email" "ton_fichier" | awk  '{ print $2}'

Hors ligne

#13 Le 22/09/2006, à 13:37

next-d

Re : extraire des infos d'un fichier txt

j'ai des adresses non valide aussi
commune.ceyxxxxx
Mairie.Chaxxxx

gr...

Hors ligne

#14 Le 22/09/2006, à 13:53

cep

Re : extraire des infos d'un fichier txt

Il faut que la présentation soit la même que dans ton exemple, pour respecter le champ 2 de awk. De même il faut des adresses sous la forme xxxxxx.xxxxxx@wanadoo.fr

Sinon, il te faut un script qui supprime Email et affiche ensuite la ligne entière.

Hors ligne

#15 Le 22/09/2006, à 14:02

cep

Re : extraire des infos d'un fichier txt

Tu peux faire :
sed 's/[Ee]mail//g' ton_fichier | grep @ >ton_fichier2 ; cat ton_fichier2

Que tu simplifieras ensuite.

Hors ligne

#16 Le 22/09/2006, à 14:05

trucutu

Re : extraire des infos d'un fichier txt

Tu peux aussi tenter de faire un readline (C, python...), puis "spliter" la chaîne de caractère obtenue en utilisant le séparateur ' ', et ne garder que le 2° élément de la liste générée


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#17 Le 22/09/2006, à 14:27

Black_pignouf

Re : extraire des infos d'un fichier txt

J'ai pas bien compris, veux tu virer la ligne entière, l'adresse mail ou le mot Email? Ou alors juste récupérer la liste d'email?

Pour juste récupérer la liste:

grep -iEo '[a-z\.0-9\-_]{1,}@[a-z0-9\-_]*\.[a-z]{2,4}' fichier.txt

devrait faire l'affaire.

Pour voir la liste des emails non valides:

grep -i email fichier.txt| sed 's/[Ee]mail \(.*\)$/\1/g' | grep -viE '^[a-z\.0-9\-_]{1,}@[a-z0-9\-_]*\.[a-z]{2,4}'

Ouf! smile

Dernière modification par Black_pignouf (Le 23/09/2006, à 11:16)

Hors ligne

#18 Le 22/09/2006, à 14:40

cep

Re : extraire des infos d'un fichier txt

Black_pignouf a écrit :

Ouf! smile

Salut Black_pignouf,

Et moi qui craignais d'avoir mis une ligne trop difficile à aborder pour un débutant smile

Cordialement.
cep

Hors ligne

#19 Le 22/09/2006, à 14:54

next-d

Re : extraire des infos d'un fichier txt

ouiouioui
je vais tenter mais un peu d'explication serait le bien venu
histoire de comprendre
tongue

Hors ligne

#20 Le 22/09/2006, à 14:55

Black_pignouf

Re : extraire des infos d'un fichier txt

C'est vrai que c'est pas évident au premier abord, mais comme souvent avec les regexp, elles paraissent plus monstrueuses qu'elles ne le sont. Si je trouve le temps, je passerai expliquer la procédure utilisée.

J'aimerais déjà savoir si c'est ce que next-d voulait!

Hors ligne

#21 Le 22/09/2006, à 15:11

cep

Re : extraire des infos d'un fichier txt

next-d a écrit :

ouiouioui
je vais tenter mais un peu d'explication serait le bien venu
histoire de comprendre
tongue

Alors pour : sed 's/[Ee]mail//g' ton_fichier | grep @ >ton_fichier2 ; cat ton_fichier2

sed 's/[Ee]mail//g' = avec sed et l'option s tu remplaces Email ou email par un espace (ceci afin de conserver la même présentation), et l'option g pour le faire sur toutes les occurences.
Cela sur le fichier ton_fichier
| grep @  = tu fais un "tube" pour traîter ensuite avec l'utilitaire grep qui va rechercher l'occurence @ dans les lignes du fichier.
>ton_fichier2 = va créer un nouveau fichier avec comme nom : ton_fichier2 pour garder intacte ton_fichier.
; cat ton_fichier2 = va ensuite afficher à l'écran avec l'utilitaire cat le nouvau fichier ton_fichier2.

Tu peux bien sûr supprimer cette partie pour ensuite éditer avec autre chose.
Et il faut adapter ton_fichier avec le nom.

Voilà, c'est assez simple en réalité.

Bonne continuation.
cep

Hors ligne

#22 Le 22/09/2006, à 15:27

next-d

Re : extraire des infos d'un fichier txt

ok parfait la c'est cool
sinon en python ou ruby c'est plus dure ou simple???
des fct existent peut etre deja?
enfin .... je ne suis pas un pros

Hors ligne

#23 Le 22/09/2006, à 18:57

kaworu

Re : extraire des infos d'un fichier txt

sed -e 's/[Ee]mail//g' ton_fichier.txt | grep @ | tee ton_fichier2.txt

l'utilisation de tee est pratique, il va afficher ce qu'il consomme dans le pipe et l'enregistrer dans ton_fichier2.txt wink

en ruby ou python je dirait que c'est pas plus facile ni plus court (ne parlons même pas du C...). Pour un petit hack comme celui-çi, bash (ou un autre shell) convient parfaitement (AMHA).

Dernière modification par kaworu (Le 22/09/2006, à 18:59)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#24 Le 22/09/2006, à 22:20

Black_pignouf

Re : extraire des infos d'un fichier txt

Effectivement, un script ruby ne sera pas plus court (je vois mal comment ça serait possible), mais peut-être plus facile à comprendre. Je reviens avec un scripounet. smile


Le script de base donnerait ça:

#! /usr/bin/ruby

Liste=File.new("fichier.txt")

Liste.each{|ligne|
        cherche_mail=ligne.match(/\b[\w.\-]+@[\w\-.]+.[\w]{2,4}/)
        puts cherche_mail[0] if cherche_mail
}
Liste.close

Je vais m'acheter une vie et je reviens. smile

Dernière modification par Black_pignouf (Le 23/09/2006, à 00:18)

Hors ligne

#25 Le 23/09/2006, à 09:53

kaworu

Re : extraire des infos d'un fichier txt

cherche_mail=ligne.match(/\b[\w.\-]+@[\w\-.]+.[\w]{2,4}/)

plus facile à comprendre hein ? lol
De plus, si je ne m'abuse cela va bien printer la réponse, mais pas la sauver dans un fichier.


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne