Awk 我想使用sed清理姓名和电子邮件地址列表
我正在尝试使用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 '{
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。什么部分需要忽略?谢谢你的帮助!不客气。祝你的脚本编写工作好运!如果您对答案感到满意,请查看: