#26 Le 23/09/2006, à 11:09
- Black_pignouf
Re : extraire des infos d'un fichier txt
Effectivement. Mais rien ne t'empêche de > fichier.sortie.txt
Un peu plus d'explications:
grep -iEo '[a-z\.0-9\-_]{1,}@[a-z0-9\-_]{1,}\.[a-z]{2,4}' fichier.txt
grep recherche une expression régulière dans un fichier (fichier.txt). C'est ce que l'on désire, non?
-i indique que la recherche ne fera pas attention à la casse (ie Email ou eMaiL)
-E indique que l'on utilise des expressions régulières étendues (=plus de fonctionalités)
-o indique que grep ne nous renverra que la partie correspondante à l'expression régulière, pas la ligne entière.
L'expression régulière maintenant:
I)
[a-z\.0-9\-_]
I.1)
a-z
Quelque chose entre a-z (=une lettre, majuscule ou minuscule grâce au -i)
I.2)
\.
un point . (il faut "échapper" le point avec \ devant, car . tout seul signifie "n'importe quel caractère")
I.3)
0-9
un chiffre
I.4)
\-
un tiret (de nouveau échappé avec \ devant, car - est interprété comme un intervalle, comme par exemple a-z)
I.5)
_
rien de spécial à dire
a-z\.0-9\-_ a été placé entre crochets, pour indiquer : soit une lettre, soit un nombre, soit un point, un tiret - ou un tiret _.
#############################
II)
{1,}
placé après [a-z\.0-9\-_] signifie que l'on répète le même motif une fois ou plus.
#############################
III)
[a-z\.0-9\-_]{1,}@[a-z0-9\-_]{1,}
est donc un mot d'au moins un caractère, composé seulement de lettres, chiffres ou -._, suivi d'un arobase, suivi de nouveau d'un mot d'au moins un caractère, composé seulement de lettres, chiffres ou -._.
#############################
On y arrive!
IV)
\.[a-z]{2,4}
est un point suivi d'un mot de 2, 3 ou 4 caractères, composés seulement de lettres. Par exemple, .fr, .com, .net, .info, mais pas .ubuntu ou .fr9
#############################
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}'
Pour la liste des emails non valides, il suffit de chercher toutes les lignes ayant le mot email (grep -i email fichier.txt), de remplacer la chaîne de caractères "Email " ou "email " par "" pour la supprimer, et ensuite d'effectuer le même test que précédemment (avec
[a-z\.0-9\-_]{1,}@[a-z0-9\-_]{1,}\.[a-z]{2,4}) mais en demandant de n'afficher que les lignes qui ne passent pas le test (option -v).
Et voilà!
Dernière modification par Black_pignouf (Le 23/09/2006, à 11:35)
Hors ligne
#27 Le 10/10/2006, à 07:32
- next-d
Re : extraire des infos d'un fichier txt
merci a toi ca marche dans sa globalite
apres que faut il faire pour que ca marche avec un fichier cvs ou xls?
je sais j'abuse
Hors ligne
#28 Le 10/10/2006, à 08:30
- Black_pignouf
Re : extraire des infos d'un fichier txt
De rien!
Qu'entends tu par
ca marche dans sa globalite
?
Pour cvs ou xls, ca dépend comment les données sont enregistrées.
Hors ligne
#29 Le 10/10/2006, à 08:34
- pabix
Re : extraire des infos d'un fichier txt
un fichier xls : essaie de l'ouvrir avec le gestionnaire d'archives de Gnome (file-roller) et d'extraire les fichiers qu'il contient.
Il doit y en avoir un qui contient les e-mails.
Pour plus d'informations sur les expressions rationnelles va voir http://fr.wikipedia.org/wiki/Regexp
Benoit
Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D
Hors ligne
#30 Le 10/10/2006, à 18:04
- next-d
Re : extraire des infos d'un fichier txt
la je ne comprends pas bien l'histoire de file-roller
je viens d'essayer mais ca ne marche pas
Hors ligne
#31 Le 10/10/2006, à 18:08
- next-d
Re : extraire des infos d'un fichier txt
Re: extraire des infos d'un fichier txt
De rien!
Qu'entends tu par
ca marche dans sa globalite
====================================
jusaue des fois tu as des mail comme xxx.xxx@xxx(.ou -)xxx.xx
il suffit de faire une petite modif
sinon ca marche bien
===============
et tu attends koi par "ca dépend comment les données sont enregistrées"
Hors ligne
#32 Le 11/10/2006, à 23:45
- lunique
Re : extraire des infos d'un fichier txt
usaue des fois tu as des mail comme xxx.xxx@xxx(.ou -)xxx.xx
Mais une adresse en jean.dupont@ubuntu-fr.org est valide non ? de meme que jean.dupont@toto.new.fr.
A la limite, une vraie adresse pas bonne aiderai certainement la comprehension du probleme ^ ^
Hors ligne
#33 Le 12/10/2006, à 09:55
- Black_pignouf
Re : extraire des infos d'un fichier txt
une adresse en ubuntu-fr.org sera validée par cette expression
grep -iEo '[a-z\.0-9\-_]{1,}@[a-z0-9\-_]{1,}\.[a-z]{2,4}' fichier.txt
alors que @toto.new.fr ne le sera pas.
grep -iEo '[a-z\.0-9\-_]{1,}@[a-z0-9\-_\.]{1,}\.[a-z]{2,4}' fichier.txt
règle le problème! (Pas encore parfaitement, car toto@.....fr sera valide! )
Modif: typo
Dernière modification par Black_pignouf (Le 12/10/2006, à 09:56)
Hors ligne
#34 Le 21/10/2006, à 14:29
- Black_pignouf
Re : extraire des infos d'un fichier txt
Je viens tout juste de découvrir kregexpeditor
C'est de la bombe de balle pour comprendre une expression régulière.
Je vous invite tous à l'installer, et à le tester avec cette expression:
[a-z\.0-9\-_]{1,}@[a-z0-9\-_\.]{1,}\.[a-z]{2,4}
Il l'explique bien mieux que moi !
Hors ligne
#35 Le 09/11/2006, à 11:59
- next-d
Re : extraire des infos d'un fichier txt
nikel de chez nikel
un pb de resolu et un autre apparait
dans ma liste j'ai plusieurs fois le meme mail.
kel est le moyen le plus simple pour qu'il soit unique.... soit lors du > ou du >> email.txt
Hors ligne
#36 Le 09/11/2006, à 13:17
- Black_pignouf
Re : extraire des infos d'un fichier txt
Salut!
Rajoute un
| sort -u
à la fin de la commande, pour trier les adresses e-mail et virer les doublons
grep -iEo '[a-z\.0-9\-_]{1,}@[a-z0-9\-_]{1,}\.[a-z]{2,4}' fichier.txt | sort -u
Hors ligne
#37 Le 09/11/2006, à 19:22
- gene69
Re : extraire des infos d'un fichier txt
bon allé, un professionnel utiliserai flex et bison....
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#38 Le 09/11/2006, à 21:57
- Black_pignouf
Re : extraire des infos d'un fichier txt
@gene69, Rien à voir?
Hors ligne
#39 Le 14/11/2006, à 09:40
- next-d
Re : extraire des infos d'un fichier txt
histoire de compliquer
cette fois c'est pour avoir une idée
vous m'avez montrer l'extrait de donnée sur un fichier texte mais pour un ensemble de repertoire comprenant plusieurs fichiers txt.
ouaou hum!!!
plus dure est-ce possible?
Dernière modification par next-d (Le 14/11/2006, à 09:40)
Hors ligne
#40 Le 14/11/2006, à 11:58
- abetsic
Re : extraire des infos d'un fichier txt
grep -R "ce que tu recherches" * pour une recherche récursive dans les sous répertoires du dossier courant devrait faire l'affaire non ?
Hors ligne
#41 Le 14/11/2006, à 12:02
- next-d
Re : extraire des infos d'un fichier txt
j'avais pas penseé a cette solution grrr.....
Hors ligne
#42 Le 14/11/2006, à 12:04
- next-d
Re : extraire des infos d'un fichier txt
oui ca marche presque
voila un resultat
/media/My Book/test.CSV:xxxx@xxx.fr
pourkoi j'ai le chemin?
Hors ligne
#43 Le 14/11/2006, à 12:07
- next-d
Re : extraire des infos d'un fichier txt
l'option -R ne marche pas tres bien
j'ai une diff de 2000 mails entre la methode recursive et celle du fichier par fichier:)
Hors ligne
#44 Le 28/03/2007, à 14:13
- next-d
Re : extraire des infos d'un fichier txt
me revoila
500 lignes d'emails a trié c'est chiant grrr...
voila ma ligne de code
grep -iEo '[a-z\.0-9\-_.]{1,}@[a-z0-9\-_.]*\.[a-z]{2,4}' email.txt > resut.txt
j'ai un pb avec les majuscules et certains emails.
avez une idée pour recuperer tous les emails qlqsoit leur forme
merci d'avance
Hors ligne
#45 Le 28/03/2007, à 14:38
- next-d
Re : extraire des infos d'un fichier txt
rien a faire si vous voulez tester ce pu.... de fichier
Hors ligne
#46 Le 28/03/2007, à 14:58
- next-d
Re : extraire des infos d'un fichier txt
pour ce script ->
#! /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
=================================================
comment faire une boucle pour effectuer une recherche jusqu'a la fin du fichier?
vivivi
Hors ligne