如果匹配存在,则使用 AWK 添加新行

use*_*000 2 sed awk

我有一个具有以下格式的文件:

aaa@ bbb
bbb@ ccc& ddddd@ aaaf
ccc@ ddd& eee: abcd& dassda
Run Code Online (Sandbox Code Playgroud)

输出应该是:

aaaa@ bbb
bbb@ ccc&
ddddd@ aaaf
ccc@ ddd&
eee@ abcd& dassda
Run Code Online (Sandbox Code Playgroud)

我如何能够使用 AWK 实现这一目标?我试过 sed 和 awk 但我只能在分隔符后打印一个新行,我不知道如何在下一行打印整个内容。

rus*_*ush 7

sed:

sed 's/& /\&\n/' file
Run Code Online (Sandbox Code Playgroud)

如果您需要替换&每个字符串上的所有内容,只需g在 last 之后添加/

awk :

awk '{ sub(/& /,"&\n"); print }'
Run Code Online (Sandbox Code Playgroud)

如果您需要替换&每个字符串上的所有内容,请gsub改用sub