Extraire les adresses email à partir de fichier texte à l'aide de regex avec bash ou en ligne de commande
Comment puis-je grep uniquement l'adresse e-mail à l'aide d'une expression régulière à partir d'un fichier avec plusieurs lignes de semblable. (un dump sql pour être précis)
Malheureusement je ne peux pas revenir en arrière et faire un dump de la colonne email à ce point.
De données, par exemple:
62372,35896,1,cgreen,Chad,Green,cgreen@blah.com,123456789,0,,,,,,,,,3,Blah,,2013-05-02 17:42:31.659574,164842,,0,0
J'ai essayé ceci mais ça ne fonctionne pas:
grep -o '[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}' file.csv
OriginalL'auteur Arringar1 | 2013-11-12
Vous devez vous connecter pour publier un commentaire.
Si vous connaissez la position du champ, alors il est beaucoup plus facile avec awk ou de coupe:
OU
foo\,[email protected]
pourrait, en théorie, existent.D'accord, CSV peut être assez compliqué et shell outils ne sont pas les meilleurs pour l'analyse.
OriginalL'auteur anubhava
Si vous voulez toujours aller dans le
grep -o
route, celui-ci fonctionne pour moi:Je semblent avoir 2 versions de grep dans mon chemin, 2.4.2 et 2.5.1. Seulement 2.5.1 apparaît à l'appui de l'option-o.
Votre expression régulière est proche, mais il vous manque 2 choses:
-i
à grep ou ajouter desa-z
à votre crochet expressions+
modificateurs et{}
accolades semblent avoir besoin d'être échappés.OriginalL'auteur Digital Trauma
La meilleure façon de gérer cela est une bonne CSV analyseur. Une façon simple de réaliser que, si c'est une tâche de temps, est de charger le fichier CSV dans vos favoris logiciel de feuille de calcul, puis d'en extraire juste le champ e-mail.
Il est difficile d'analyser CSV avec une regex, en raison de la possibilité de s'échappa des virgules, texte cité, etc.
Envisager, voici des adresses e-mail valides, selon les standards de l'Internet:
Si vous savez pour un fait que vous n'aurez jamais ce genre de données, alors peut-être simple grep et awk seront les outils de travail (comme dans @anubhava de réponse).
OriginalL'auteur Flimzy
Vous pouvez le résoudre à l'aide de python avec l'aide de l'intégré dans
csv
module externevalidators
module, comme ceci:L'exécuter comme:
Que les rendements:
import validators
échoue (pour moi) en Python 2.7.Vrai. Vous devez installer en premier.
OriginalL'auteur Birei