使用sed,在第一次出现角色之前删除所有内容

Whi*_*in3 4 unix sed

假设我有一条看起来像这样的线

Hello my first name is =Bart and my second is =Homer
Run Code Online (Sandbox Code Playgroud)

如果我想在第一次=:使用后获取所有内容,我该怎么办sed

在这个例子中,我想得到结果

Bart and my second is =Homer
Run Code Online (Sandbox Code Playgroud)

我现在正在使用,sed 's/.*[=:]//'但我得到的Homer结果(一切都在最后一个=或之后:)我想在第一个之后得到所有东西,而不是最后一个=或者:

Mad*_*ist 8

通常,量词sed是贪婪的,这就是为什么你总是匹配最后一个=.第一个定义的=是它之前的所有字符都不是=,所以:

sed 's/[^=]*=//'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的问题暗示其中一个:或是=有效标记

sed 's/[^=:]*[=:]//'
Run Code Online (Sandbox Code Playgroud)