2017-10-13 6 views
0

J'ai une tâche sur laquelle je travaille, mais je ne sais pas quoi faire ensuite. On nous a donné une liste d'emails et nous devons le reformater. Il est donné dansSuppression d'une partie d'une adresse e-mail sous Linux à l'aide des filtres

[email protected] LastName, Firstname 

Il doit être dans le format suivant:

LastName, FirstName [email protected] 

Je suis en mesure de réorganiser tout de sorte qu'il est dans le bon format, mais je ne peux pas retirer la partie de imapNumber de le courriel. Quelqu'un pourrait-il m'aider avec ça?

Jusqu'à présent, je l'ai fait ce qui suit:

Pour obtenir uniquement les adresses e-mail que j'ai fait la commande suivante:

cut -d" " -f1 addressbook|cat>emails 

Pour obtenir le prenom lastname je l'ai fait la commande suivante:

cut -d, -d" " -f2 addressbook|cat>names 

Les informations ci-dessous proviennent d'un fichier appelé carnet d'adresses

[email protected] Li,Yi-Huey 
[email protected] Solis,Erica 
[email protected] Ismail,Eiko 
[email protected] Rangel,Juvenal 
[email protected] Vo-le,Trang 
[email protected] Wang,Meiping 
[email protected] Xiao,JunHui 
[email protected] Chen,Lihua 
[email protected] Luo,Yan 
[email protected] Raghuram,Edupuganti 
[email protected] Natkin,William 
[email protected] Armstrong,Craig 
[email protected] Ram,PrasadVanam 
[email protected] Kambam,SuneethaR 
[email protected] Crawford,Chris 
[email protected] Robinson,Lisa 
[email protected] Adi,SrikanthReddy 
[email protected] Fletcher,Derrick 
[email protected] Hanchate,Bhavaniprasad 
[email protected] Kambhampati,RamaKrishna 
[email protected] Kanumuri,RangaRaju 
[email protected] Kothamachu,Pradeep 
[email protected] Kurumaddali,Venkata 
[email protected] Liu,Xiaomei 
[email protected] Mahakali,Radha 
[email protected] Murugesan,Monikadevi 
[email protected] Palleti,Venkata 
[email protected] Shanmugam,Viji 
[email protected] Wei,Helen 
[email protected] Xiao,Li 
[email protected] HanumanthaReddy,Madhu 
[email protected] Chakkarabavi,Beena 
[email protected] Kang,Yi 
+0

Faites-le avec 'awk', alors vous ne devez pas enregistrer chaque colonne dans un fichier. – Barmar

+0

Vous pouvez utiliser sa fonction 'sub()' pour supprimer 'imap #' de la colonne email. – Barmar

+0

Bienvenue dans Stack Overflow! SO n'est pas un service de codage gratuit. Vous devez essayer de résoudre le problème vous-même. Si vous ne pouvez pas le faire fonctionner, postez ce que vous avez essayé et nous vous aiderons à le réparer. – Barmar

Répondre

0

Utilisez sed pour supprimer le imap#. des e-mails.

cut -d" " -f1 addressbook | sed 's/@imap[0-9]*\./@/' > emails 

De plus, il n'y a pas besoin de tuyau pour cat, juste rediriger la sortie de cut ou sed au fichier.

cut -d" " -f2 addressbook > names 

Et il n'y a pas d'intérêt à utiliser -d, dans la deuxième cut. Seule la dernière option -d est utilisée.