Как я могу заменить строку на основе доступной строки в XML - PullRequest
0 голосов
/ 11 мая 2019

Я хочу заменить direction = "Bidir", если в этом же узле Url состоит из pB- в xml.

Я пытался

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

Но я должен сделать это для каждого заголовка, где pB- присутствует в xml.

pri.xml content-

<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

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Если pB- всегда идет после Direction=, как в вашем примере:

sed 's/\(Direction="\)unidir\(".*pB-\)/\1bidir\2/'
0 голосов
/ 11 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...