Как получить полное имя для сортировки по адресу электронной почты типа outlook - PullRequest
0 голосов
/ 23 апреля 2020

У меня ниже адрес электронной почты, с которого мне нужны только имена, такие как Abrar Ahmad, и я просто удаляю или игнорирую распечатываемый адрес электронной почты.

Abrar Ahmad <abrar.ahmad@example.com>; Andre Geurts <andre.geurts@example.com>; Andrzej Kamionek <andrzej.kamionek@example.com>

Я пробовал ниже, но не получил желаемого.

$ awk '{ gsub( /<>/ , "" ) ;  print $1,$2  }' email
Abrar Ahmad

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

Как то так?:

$ awk '{gsub(/<[^<]*>/,"")}1' file
Abrar Ahmad ; Andre Geurts ; Andrzej Kamionek 
1 голос
/ 23 апреля 2020

1-е решение: Не могли бы вы попробовать следующее.

awk 'BEGIN{FS=OFS=";"} {for(i=1;i<=NF;i++){sub(/ <.*/,"",$i)}} 1'  Input_file

ИЛИ, чтобы сделать запятую в качестве разделителя вывода, попробуйте:

awk 'BEGIN{FS=";";OFS=","} {for(i=1;i<=NF;i++){sub(/ <.*/,"",$i)}} 1'  Input_file


2-е решение: ИЛИ попробуйте split:

awk 'BEGIN{FS=OFS=";"} {for(i=1;i<=NF;i++){split($i,array,"<");$i=array[1]}} 1' Input_file

Чтобы сделать , в качестве выходного разделителя, попробуйте:

awk 'BEGIN{FS=";";OFS=","} {for(i=1;i<=NF;i++){split($i,array,"<");$i=array[1]}} 1'  Input_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...