从文本文件的每一行中删除字符前的非字母字符

Remove non-alpha characters before a character from every line of a text file

我有一个如下所示的文本文件:

13foobar@example.com
foo.bar3@example2.com
qwerty-1@dept.example3.com

如何使用 sedperl 删除 @ 符号前的所有非字母字符。 IE。所需的输出将是:

foobar@example.com
foobar@example2.com
qwerty@dept.example3.com

输入

13foobar@example.com
foo.bar3@example2.com
qwerty-1@dept.example3.com

Perl 一行

perl -ne 'my ($user,$host) = split /\@/; $user =~ s/[\W\d]//g; print $user . "@" . $host;'

正在行动

cat input | perl -ne 'my ($user,$host) = split /\@/; $user =~ s/[\W\d]//g; print $user . "@" . $host;'

输出

foobar@example.com
foobar@example2.com
qwerty@dept.example3.com

下面一行就够了。

perl -pe 's/[^a-z]+(?=[^@\n]*@)//g'