Linux 如何在GNU sed中结束'i'命令?

Linux 如何在GNU sed中结束'i'命令?,linux,bash,sed,stream,gnu-sed,Linux,Bash,Sed,Stream,Gnu Sed,我试图使用sed对输入字符串进行几次替换和插入 但是,我最近注意到insert命令I不会在上终止与其他类似,而是打印字符串的其余部分 $ sed "s/^foo/bar/; 1i foo foo foo; s/foo$/baz/;" 在以下输入上运行该命令时 foo bar baz 我得到以下不正确的输出 foo foo foo; s/foo$/baz/; bar bar baz 终止该命令的正确方法是什么?您可以在一个命令中使用多个-e分开的查询: sed -e 's/^foo/bar/

我试图使用
sed
对输入字符串进行几次替换和插入

但是,我最近注意到insert命令
I
不会在
上终止与其他类似,而是打印字符串的其余部分

$ sed "s/^foo/bar/; 1i foo foo foo; s/foo$/baz/;"
在以下输入上运行该命令时

foo bar baz
我得到以下不正确的输出

foo foo foo; s/foo$/baz/;
bar bar baz

终止该命令的正确方法是什么?

您可以在一个命令中使用多个
-e
分开的查询:

sed -e 's/^foo/bar/' -e '1i foo foo foo' -e 's/foo$/baz/' <<< "foo bar baz"
foo foo foo
bar bar baz