Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sed(Windows&x2B;cygwin和Linux)更新xml属性?_Xml_Linux_Windows_Sed - Fatal编程技术网

使用sed(Windows&x2B;cygwin和Linux)更新xml属性?

使用sed(Windows&x2B;cygwin和Linux)更新xml属性?,xml,linux,windows,sed,Xml,Linux,Windows,Sed,我需要使用sed命令对xml文件进行更新,但我在这方面遇到了问题。。它需要在Windows(使用cygwin)和Linux上运行 XML具有以下元素: ... <parameter name="jersey.test.host" value="localhost" /> ... 而且: sed -i "s#<parameter name="jersey.test.host" value=".*" />#<parameter name="jersey.test.

我需要使用sed命令对xml文件进行更新,但我在这方面遇到了问题。。它需要在Windows(使用cygwin)和Linux上运行

XML具有以下元素:

...

<parameter name="jersey.test.host" value="localhost" />

...
而且:

sed -i "s#<parameter name="jersey.test.host" value=".*" />#<parameter name="jersey.test.host" value="abc" />#"" "C:\file.xml"
sed-i“s####”C:\file.xml
但是当我运行命令时,不会对文件执行任何更改,我打赌这意味着我没有正确匹配

我不介意我是否也可以使用awk来实现这一点,只要相同的命令可以在Windows+Cygwin和Linux中使用就行了

有人能帮我解决这个问题吗?非常感谢任何指点


谢谢!

如果sed命令包含双引号,则应将其括在单引号(或转义双引号)中

以下命令应执行此工作:

sed -i 's#<parameter name="jersey.test.host" value=".*" />#<parameter name="jersey.test.host" value="abc" />#' "C:\file.xml"
sed-i的“C:\file.xml”

如果sed命令包含双引号,则应将其括在单引号(或转义双引号)中

以下命令应执行此工作:

sed -i 's#<parameter name="jersey.test.host" value=".*" />#<parameter name="jersey.test.host" value="abc" />#' "C:\file.xml"
sed-i的“C:\file.xml”

您也可以使用
awk
来解决此问题:

awk -F\" '$2=="jersey.test.host" {$4="abc"}1' OFS=\" file
<parameter name="jersey.test.host" value="abc" />

您还可以使用
awk
来解决此问题:

awk -F\" '$2=="jersey.test.host" {$4="abc"}1' OFS=\" file
<parameter name="jersey.test.host" value="abc" />