-1
sedコマンドを使用してxmlファイル内の文字列を置き換えようとしています。私のスクリプトには次のコードが含まれています。エコーで文字列を置換するには、sedコマンドシェルスクリプトを使用して空白が含まれています
SEARCH='key="identifierA" value ="000000 00:00:00"'
REPLACE='key="identifierA" value ="101617 00:00:00"'
TEST_DIR=home/test/
TEST_FILE="test.xml"
ChangeXml(){
ModifyValue $TEST_DIR $TEST_FILE $SEARCH $REPLACE
}
ModifyValue(){
cd $1
echo "Search : $3 Replace : $4 "
sed -i "s/$3/$4/g" $2
}
#Actions performed
ChangeXml
しかし、この第3位4つの戻り000000 0時00分00秒をidentifierAを返し、$。代わりにそれらの変数に割り当てられた値を与えるはずです。このため、置換は期待どおりには機能しません。 の間のスペースをエスケープしようとしました。key = "identifierA" value = "000000 00:00:00"。しかし結果は得られません。私はシェルスクリプトの新機能です。誰も私に理由を教えて、期待される結果を達成するために私を修正することはできますか?彼らは空白を含めることができる場合
こんにちは、それは完全に働いた。 sedを使用してより良い解決策がありますか? –
「より良い」とはどういう意味ですか?それは完璧に働いて、どのように完璧に機能するのでしょうか? – choroba
申し訳ありません。私が意味したのは、私が弦を置き換える方法でした。 –