Awk 我想使用sed清理姓名和电子邮件地址列表

Awk 我想使用sed清理姓名和电子邮件地址列表,awk,sed,Awk,Sed,我正在尝试使用sed将电子邮件前缀替换为全名-删除。和首字母,并替换为行开头的第一个名称 Antony Clark a.clark@zzz123.co ZZZ Caroline Foster c.foster@zzz123.co ZZZ 例如,a。clark@zzz123.co将成为安东尼。clark@zzz123.co 谢谢 它并不迷人,但是awk使用printf可以通过以下方式保存格式: $ awk '{

我正在尝试使用sed将电子邮件前缀替换为全名-删除。和首字母,并替换为行开头的第一个名称

Antony          Clark           a.clark@zzz123.co     ZZZ
Caroline        Foster          c.foster@zzz123.co    ZZZ
例如,
a。clark@zzz123.co
将成为
安东尼。clark@zzz123.co


谢谢

它并不迷人,但是
awk
使用
printf
可以通过以下方式保存格式:

$  awk '{sub(/^[^.]+/,tolower($1),$3); printf "%-16s%-16s%-28s%s\n",$1,$2,$3,$4}' emails
Antony          Clark           antony.clark@zzz123.co      ZZZ
Caroline        Foster          caroline.foster@zzz123.co   ZZZ
如果您只需要单个空格分隔的输出,那么这将减少到:

$ awk '{sub(/^[^.]+/,tolower($1),$3)}1' emails
Antony Clark antony.clark@zzz123.co ZZZ
Caroline Foster caroline.foster@zzz123.co ZZZ
(您可以将输出字段分隔符更改为所需的任何内容)


检查一下,让我知道其中一个是否有效。

这些列是否由多个空格的制表符分隔?很高兴编辑您的Q来回答这个问题,而不是在评论中回答那个问题。祝你好运。他们都能工作,谢谢。我本来希望用sed做这件事,但我知道如何更好地处理表格数据?谢谢你的帮助。我还需要忽略标题…
awk
更好地处理字段。您需要忽略哪个标题?我只看到2个名字和电子邮件,结尾是ZZZ。什么部分需要忽略?谢谢你的帮助!不客气。祝你的脚本编写工作好运!如果您对答案感到满意,请查看: