Grep - >如何替换文本文件的内容

ABO*_*BOB 2 perl grep text replace

我有一个文本文件,有很多行,它的布局就像

zzzzz | id@host.tld |
yyyyy | id@host.tld |
Run Code Online (Sandbox Code Playgroud)

每行约一千万行.

使用Grep表达式,我该怎么做才能获得替换

zzzzz
yyyyy
Run Code Online (Sandbox Code Playgroud)

等等文件中的每一行

也许使用Perl重写文件也没关系,我只是不知道很多Perl.

更新1:有时导出运行产生:

id@host.tld | zzzzz
id@host.tld | yyyyy
Run Code Online (Sandbox Code Playgroud)

更新2:有时他们将行号留在:

a variable digit row number | zzzzz | id@host.tld |
a variable digit row number | yyyyy | id@host.tld |
Run Code Online (Sandbox Code Playgroud)

更新3:此文件可以包含格式如下的行:

zzzzz | id@host.tld |
yyyyy | id@host.tld |
id@host.tld | zzzzz
id@host.tld | yyyyy
variable digit row number | zzzzz | id@host.tld |
variable digit row number | yyyyy | id@host.tld |
Run Code Online (Sandbox Code Playgroud)

bmk*_*bmk 5

它也可以使用(GNU)完成grep:

grep -o '^[^|]*'
Run Code Online (Sandbox Code Playgroud)

编辑:
如果您不想要尾随空格但希望允许前导空格.在第一个字段中间的空格,您可以将命令更改为:

grep -o '^[^|]*[^| ]'
Run Code Online (Sandbox Code Playgroud)