sed - 用特殊字符替换行

时间:2013-11-07 20:55:22

标签: bash sed

不太确定如何使这个工作。道歉,我对此有点新鲜。

所以我有一个以

开头的行的文件
    <script type="text/javascript">var NREUMQ=NREUMQ

我想用

重新说明这一行
</head>

我似乎无法继续下去。我知道我需要这样的东西:

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

但我不知道在哪里逃避特殊角色。显然'/'需要它。任何人都能伸出援助之手吗?

5 个答案:

答案 0 :(得分:2)

使用/以外的备用正则表达式分隔符,因为匹配的文字中包含/

sed -i.bak 's~^ *<script type="text/javascript">var NREUMQ=NREUMQ~</head>~' index3.html

答案 1 :(得分: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

答案 2 :(得分:1)

你可以用反斜杠来逃避它们;但你也可以写

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

(&#39;!&#39;可以是任意字符)

答案 3 :(得分:0)

您可以使用:

sed 's|<script type="text/javascript">var NREUMQ=NREUMQ|</head>|'

答案 4 :(得分:0)

sed "/<script type=\"text\/javascript\">var NREUMQ=NREUMQ/ s#.*#</head>#"

您还可以使用s#^\( *\).*#\1</head>#"

将空格保留在开头