САС удалить пробел между символами - PullRequest
0 голосов
/ 19 ноября 2010

У меня есть XML-файл, строки которого должны выглядеть следующим образом:

<item id=""><myname>FIRST NAME</myname><myurl>http://etc.com</myurl></item>

Я могу легко заменить " myurl=" ниже, чтобы линия выглядела как приведенная выше.

<item id=""><myname>FIRST NAME" myURL="http://etc.com</myurl></item>

К сожалению, большинство из них выглядит так, с разным количеством пробелов в б / т:

<item id=""><myname>FIRST NAME"                   
         myURL="http://etc.com</myurl></item>

Я не могу получить рабочую замену SED для пробелов в б / т символах

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Является ли регулярное выражение 's/ */ /g' тем, что вы ищете?

Для всех строк из двух или более пробелов это заменяет один пробел.

0 голосов
/ 20 ноября 2010
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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...