2016-11-30 30 views
-2

XMLファイルに含まれる説明文字列全体を置き換えようとしています。その文字列を変数に置き換えたいと思います。私はGroovyスクリプト内でSEDコマンドを使用しています。文字列を変数に置き換えてGroovyとSEDコマンド

私は以下のコードを持っています。私は、文字列 "foo"が説明テキストを置き換えることを期待していますが、それはそうではありません。私が間違っているのは何=「sDescription」

説明: は、代わりに次の行は、XMLがに変化させますか?

def sDescription = "foo" 
def sedCommand = 'sed -i \'s/Description="[^"]*"/Description="'$sDescription'"/g\' package.appxmanifest' as String 
+1

groovyの優れたXML解析と操作で置き換えてみませんか? –

答えて

1

文字列内での変数/式の置換(補間)は、特定のタイプの文字列リテラル構文でのみ機能します。一重引用構文('content')はその1つではありません。しかし、あなたは二重引用符("content")と外側の単一引用符を置き換えるならば、あなたはあなたが探しているの補間効果を取得する必要があります:

def sDescription = "foo" 
def sedCommand = "sed -i 's/Description=\"[^\"]*\"/Description=\"$sDescription\"/g\' package.appxmanifest" as String 

これは、あなたが実行したいコマンドを含む文字列を与える必要があります。文字列区切り文字の変更を反映するために、文字列内の特殊文字エスケープ(\)をどのように変更したかご注意ください。別に

@tim_yatesで述べたように、なぜあなたはGroovyのは、言語に組み込ま優れたXMLの操作機能が含まれている場合、この置換を行うために別のアドホックプロセスを起動するのでしょうか?

+0

これは答えでした。本当にありがとう! – jaxim

関連する問題