找到模式并在sed中追加

时间:2013-08-11 08:05:43

标签: bash sed

我很难找到一个模式并在sed

中的模式之前追加一行

假设我想用sed找到以下模式

"stackov/er;flo.w users are great"

注意:要搜索的模式包含双引号,/;和点 然后在模式

之前追加这一行
proud sta{ckov,er member

我的尝试

1。sed "|"stackov/er;flo.w users are great"|i\proud sta{ckov,er member" file

2

sed "/stackov/er;flo.w users are great|i\proud sta{ckov,er member" file

我试图用|替换/分隔符然后使用\来转义/使用\但它不起作用。

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:3)

这可能适合你(GNU sed):

sed '/"stackov\/er;flo\.w users are great"/i\proud sta{ckov,er member' file

答案 1 :(得分:0)

除非你在Windows上(在这种情况下我不知道),你基本上希望整个sed脚本用单引号,而不是双引号。

sed '\|"stackov/er;flo.w users are great"|i\proud sta{ckov,er member' file

你也可以使用双引号,但除非你特别需要双引号,否则你应该默认为单引号。如果您希望将来也使用它,请阅读the shell's quoting behavior