2016-07-22 61 views
1

我試圖用sed替換文本文件中存在的字符串@STYLESHEET<xsl:stylesheet如何轉義字符<同時使用sed替換字符串

我得到錯誤說

文件名,目錄名或的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

<字符很好。然而,你在替換結束時有一個撇號,不知道爲什麼。此外,您必須以字符串形式傳遞sed命令:sed '...'sed "..."。所需的報價類型也取決於您的控制檯。

所以,這將會使你的腳本工作做好:

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

當我嘗試sed的/ @ STYLESHEET/ UpdatedGenerated.txt獲取不正確的語法。當我嘗試sed的/ @ STYLESHEET/xsl:stylesheet/g'Generated.txt> UpdatedGenerated.txt獲取無效的命令。當我嘗試沒有單引號和字符<那麼它工作正常。 – shaiksha

+0

它也可能取決於您的控制檯。你也可以嘗試雙引號。 –

+0

感謝Tamas,雙引號工作 – shaiksha

1

它把選擇在雙引號後的工作。問題不在於字符<。
sed "s/@STYLESHEET/<xsl:stylesheet/g" Generated.txt > UpdatedGenerated.txt