Я пытаюсь подставить значение атрибутов с помощью команды sed
,
, но это значение можно заменить без пробелов.Подстановка значения атрибута командой sed
образец входного XML:
<BillingAddress11300000 Tag="11300000" SectionID="BLA" CustAddrName="CLAUDIA LUCIA DE ALMEIDA" CustAddrStreet="AV ENGENHEIRO RICHARD" CustAddrState="RJ" CustAddrZip="20561-090" CustAddrStreetNo="64" CustAddrComplement="APTO 303" CustAddrCity="RIO DE JANEIRO" CustAddrCounty="GRAJAU"/>
Замещение следует использовать имя атрибута для обработки и значение, чтобы изменить этот атрибут из ранее переменных, которые были ранее прочитанных в
Нужный выход. (за $ АТТ = "CustAddrName" и $ значение = "Родриго де Сильва"):
<BillingAddress11300000 Tag="11300000" SectionID="BLA" CustAddrName="Rodrigo DE Silva" CustAddrStreet="AV ENGENHEIRO RICHARD" CustAddrState="RJ" CustAddrZip="20561-090" CustAddrStreetNo="64" CustAddrComplement="APTO 303" CustAddrCity="RIO DE JANEIRO" CustAddrCounty="GRAJAU"/>
Я использовал следующий сценарий
#!/bin/bash
echo "Enter the attribute name"
read att
echo "enter new value"
read value
sed "s|$att\=\S*\S|$att=\"$value\"|g" test.xml>>out.xml**
С помощью этого скрипта можно заменить значение атрибута на этот код, если текущее значение атрибута не имеет места. Но это невозможно, если значение имеет пробел.
Как реализовать этот сценарий?
Обратите внимание на [edit-help] (http://stackoverflow.com/editing-help). – Cyrus
@ EdMorton Смешно, OP действительно обеспечивал желаемый выход. Однако он был скрыт за неудачей форматирования. Кир был прав, вероятно, более чем осознавал. – Yunnosch