преобразовать с помощью сценария оболочки форматированный XML-файл в однострочный файл, содержащий все теги - PullRequest
1 голос
/ 16 февраля 2011

У меня есть этот XML-файл:

<content>
     <tag1>
          <innertag1>foo</innertag1>
          <innertag2>baa</innertag2>
     </tag>
     <tag2>
          <innertag1>foo2</innertag1>
          <innertag2>baa1</innertag2>
     </tag2>
</content>

и мне нужно, используя скрипт, другой файл с той же информацией, но в одной строке:

<content><tag1><innertag1>foo</innertag1><innertag2>baa</innertag2></tag><tag2><innertag1>foo 2</innertag1><innertag2>baa 1</innertag2></tag2></content>

потому что мне нужен этот формат для использования команд grep и sed. Как я могу это сделать?

спасибо

Ответы [ 2 ]

0 голосов
/ 16 февраля 2011
tr -d '\n\t' inputfile > temp && echo >> temp && mv temp inputfile

или

sed -in ':a;$s/[\n\t]//g;N;ba' inputfile

для требовательных версий sed:

sed -n  -e ':a' -e '$s/[\n\t]//g' -e 'N' -e 'ba' inputfile > temp && echo >> temp && mv temp inputfile

другой вариант:

perl -i -pe 'chomp unless eof; s/\t//g' inputfile

или, возможно:

perl -pe 'chomp unless eof; s/\t//g' inputfile > temp && echo >> temp && mv 

Отредактировано также для удаления вкладок из входного файла.

0 голосов
/ 16 февраля 2011

А как насчет простых старых регулярных выражений?s/>\s*</></g

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