1

我很难在 sed 的模式之前找到一个模式并附加行

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

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

注意:要搜索的模式包含双引号, /, ; 和 dot 然后在模式之前附加这一行

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

我试图用 | 替换 / 分隔符 然后用 \ 以模式转义 / 但它没有用。

任何帮助表示赞赏

4

2 回答 2

3

这可能对您有用(GNU sed):

sed '/"stackov\/er;flo\.w users are great"/i\proud sta{ckov,er member' file
于 2013-08-11T08:18:35.413 回答
0

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

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

您也可以使用双引号,但除非您特别需要双引号,否则您应该默认使用单引号。如果您还想在将来使用它,请阅读shell 的引用行为。

于 2013-08-11T08:16:28.803 回答