Sed 将换行符前置到与模式匹配的所有短语

Sed 将换行符前置到与模式匹配的所有短语,sed,Sed,假设我的文本文件看起来像这样foobar foobar foobar barfoo。 我需要在bar的前面添加一行新行(注意“bar”前后的空格) 换句话说,在运行sed命令之后,我希望看到这一点 foobar foo bar foobar barfoo 我试过以下方法,但没有一个有效! sed-r's/bar/\nbar/;' sed-r's/(bar)/\nbar/;' 这应该有效: $ sed -r 's/ (bar )/\n\1/' file foobar foo bar foobar

假设我的文本文件看起来像这样
foobar foobar foobar barfoo
。 我需要在
bar
的前面添加一行新行(注意“bar”前后的空格)

换句话说,在运行
sed
命令之后,我希望看到这一点

foobar foo
bar foobar barfoo
我试过以下方法,但没有一个有效! sed-r's/bar/\nbar/;' sed-r's/(bar)/\nbar/;'

这应该有效:

$ sed -r 's/ (bar )/\n\1/' file
foobar foo
bar foobar barfoo
如果一行上有多个条,则可以为全局替换添加
g
标志