sed '/myname>.*\"\s*$/N;s|\"\s*\n*\s*myURL=\"|</myname><myurl>|' file.xml
Сначала проверяется, является ли строка неполной.Если это так, он помещает следующую строку в пространство шаблона.В любом случае он заменяет исходный текст желаемым текстом.
Кстати, если кто-нибудь может подсказать мне, как сопоставить новую строку в пространстве шаблона в наборе символов, я был бы признателен.Например, [\s\n]*
вместо \s*\n*\s*
в вышеприведенном выражении.
input:
<item id=""><myname>FIRST NAME" myURL="http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME"
myURL="http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME" myURL="http://etc.com</myurl></item>
output:
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>
<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>