Recherche d'expression régulière pour extraire les adresses email à partir de /etc/passwd
La plupart de mes utilisateurs ont des adresses e-mail associée à leur profil dans /etc/passwd
. Ils sont toujours dans le 5ème champ, je peux attraper, mais ils apparaissent à des endroits différents à l'intérieur d'une liste séparée par des virgules dans le 5ème champ.
Quelqu'un peut-il me donner un regex de prendre juste l'adresse e-mail (delimeted par des virgules) à partir d'une ligne dans ce fichier? (Je vais être à l'aide de grep et sed à partir d'un script bash)
Échantillon des lignes du fichier:
user1:x:1147:5005:User One,Department,,,[email protected].org:/home/directory:/bin/bash
user2:x:1148:5002:User Two,Department2,[email protected].com,:/home/directory:/bin/bash
- http://www.regular-expressions.info/email.html
- Est-ce répondre à votre question? Comment valider une adresse e-mail à l'aide d'une expression régulière?
Vous devez vous connecter pour publier un commentaire.
Ce sujet:
Où le groupe contient l'adresse e-mail.
[Mise à jour basé sur des commentaires que l'adresse n'est pas toujours interrompu par une virgule]
En fait, cela ressemble à un travail parfait pour Awk. Maintenant, comme la plupart des gens je vais dire "je ne suis pas expert en Awk" avant de procéder...
obtenez le 5e champ où ':' est le séparateur de champ à partir de /etc/passwd - c'est probablement le 5e champ que vous êtes désireux.
serait d'obtenir le 1er champ à partir de l'entrée standard où ',' était-il delimimter donc
serait d'obtenir la première séparées par des virgules champ (le champ Nom) à partir de la cinquième côlon séparés champ (le champ avec tout ce genre de trucs dedans!) dans votre fichier /etc/passwd.
Ajuster le print $1 pour obtenir le champ de vos e-mails en elle.
Sans doute, il est loin de le faire sans le tuyau en Awk. J'utilise Awk pour la séparation des champs dans les choses et pas grand chose d'autre. Je trouve cela déroutant, et c'est de quelqu'un qui aime les expressions régulières...
Fera l'affaire
De recherche pour tous les e-mail valide-caractères avant et après le [email protected] Comme:
Gourmand correspondant doit tirer dans tout ce qu'il peut, et il va s'arrêter à la virgule ou deux points.
Vérifier quels sont les caractères valides dans les adresses e-mail, si. J'ai laissé quelques-uns (comme +)
BTW Le cinquième champ est connu comme le SMOC champ. Parfois, l'épeautre GECOS.
doit attraper le plus emials
Comment à propos de la norme RFC 2822:
Yep. C'est tout. 🙂