1

不太确定如何使它工作。抱歉,我对此有点陌生。

所以我有一个文件以

    <script type="text/javascript">var NREUMQ=NREUMQ

我想用

</head>

我好像搞不定 我知道我需要这样的东西:

sed 's/^    <script type="text/javascript">var NREUMQ=NREUMQ/hello/g index3.html

但我不确定在哪里转义特殊字符。显然'/'需要它。任何人都可以伸出援助之手吗?

4

5 回答 5

2

使用备用正则表达式分隔符,除非/您的匹配文本包含/在其中:

sed -i.bak 's~^ *<script type="text/javascript">var NREUMQ=NREUMQ~</head>~' index3.html
于 2013-11-07T20:57:56.323 回答
2

您可以使用反斜杠转义任何内容:

sed "s/^    <script type=\"text\/javascript\">var NREUMQ=NREUMQ/hello/g" index3.html

好处sed是您还可以使用备用分隔符。它将使用您在 之后放置的任何内容s,这意味着您不必转义斜杠:

sed "s#^    <script type=\"text/javascript\">var NREUMQ=NREUMQ#hello#g" index3.html
于 2013-11-07T20:59:10.073 回答
1

你可以用反斜杠转义它们;但你也可以写

sed 's!...!...!' 

(“!”可以是任意字符)

于 2013-11-07T20:58:07.623 回答
0

您可以使用:

sed 's|<script type="text/javascript">var NREUMQ=NREUMQ|</head>|'
于 2013-11-07T22:43:50.640 回答
0
sed "/<script type=\"text\/javascript\">var NREUMQ=NREUMQ/ s#.*#</head>#"

您也可以在开头保留空间 s#^\( *\).*#\1</head>#"

于 2013-11-08T13:42:55.703 回答