如何逃避角色<用sed替换字符串

时间:2016-07-22 12:10:55

标签: sed

我正在尝试使用sed将文本文件中的字符@STYLESHEET替换为<xsl:stylesheet

我收到错误说

  

文件名,目录名或volumelabel语法不正确

以下是我的蝙蝠脚本:

       ECHO replacing strings in Generated.txt
       sed   s/@STYLESHEET/<xsl:stylesheet'/g Generated.txt > UpdatedGenerated.txt
       PAUSE
       type UpdatedGenerated.txt

文本文件包含以下行:

@STYLESHEET version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" @END

2 个答案:

答案 0 :(得分:2)

<字符很好。但是,在替换结束时你有一个撇号,不知道为什么。此外,您必须将sed命令作为字符串传递:sed '...'sed "..."。所需的报价类型也取决于您的控制台。

因此,这将使您的脚本运行良好:

sed   "s/@STYLESHEET/<xsl:stylesheet/g" Generated.txt > UpdatedGenerated.txt
     ^^^                             ^^^

答案 1 :(得分:1)

将选项放在双引号后它起作用了。问题不在于字符&lt;。
                    sed "s/@STYLESHEET/<xsl:stylesheet/g" Generated.txt > UpdatedGenerated.txt