【问题标题】:how can i replace string based on available string in xml如何根据 xml 中的可用字符串替换字符串
【发布时间】:2019-09-29 01:46:27
【问题描述】:

如果在同一节点 Url 中包含 pB- 在 xml 中,我想替换 direction="Bidir"。

我试过了

sed -i 's/Direction="unidir"/Direction="bidir"/g'

但我必须为 pB- 存在于 xml 中的每个标头执行此操作。

pri.xml 内容-

<pri Bor="NO" Bpp="2" Direction="unidir" Hori="1200" Passes="12" Speed="40" Ver="1200" Url="pmode-jaguar9-12pU-40ips-2bpp-12x12dpi-12x12dpi_rampX1.xml" >

 <pri Bor="NO" Bpp="2" Direction="unidir" Hor="1200" Passes="12" Speed="40" Ver="1200" Url="pmode-jaguar9-12pB-40ips-2bpp-12x12dpi-12x12dpi_rampX1.xml" >

在第二行,如您所见,存在 -12pB-,如果存在 pB-,那么我必须在同一行中替换 Direction="bidir"。由于xml包含100多行。

我希望 xml 应该像 -

<pri Bor="NO" Bpp="2" Direction="unidir" Hori="1200" Passes="12" Speed="40" Ver="1200" Url="pmode-jaguar9-12pU-40ips-2bpp-12x12dpi-12x12dpi_rampX1.xml" >

 <pri Bor="NO" Bpp="2" Direction="bidir" Hor="1200" Passes="12" Speed="40" Ver="1200" Url="pmode-jaguar9-12pB-40ips-2bpp-12x12dpi-12x12dpi_rampX1.xml

【问题讨论】:

  • /pB-/s/Direction="unidir"/Direction="bidir"/g?
  • sed '/pB-/ s/Direction="unidir"/Direction="bidir"/g' xmlfile

标签: xml shell sed


【解决方案1】:

sed "/pB-/s/Direction=\"unidir\"/Direction=\"bidir\"/" xmlFile

【讨论】:

    【解决方案2】:

    如果pB- 总是在Direction= 之后,如您的示例所示:

    sed 's/\(Direction="\)unidir\(".*pB-\)/\1bidir\2/'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2021-06-19
      • 2023-01-30
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多