Заменить новые строки в - PullRequest
       26

Заменить новые строки в

0 голосов
/ 12 января 2010

У меня есть несколько XML-файлов в Linux

a="xx
xx
xx"
b="y
y
y"

Как заменить контент и становится

a="xx\n\xx\nxx"
b="y
y
y"

, где атрибут b не заменяет

Я пробовал это, но как поддерживать несколько файлов и заменить атрибут «a» только с помощью команды sed или awk; (не использовать xslt)

sed ':a;N;$!ba;s/\n/\\n/g' abc.xml

Ответы [ 2 ]

0 голосов
/ 12 января 2010

Вот команда sed, которая должна работать:

sed -n '/^a/ {:b; $b; N; /^a.*\"$/ {s/\n/\\n/gp;b};bb}; /^a/! p'
0 голосов
/ 12 января 2010

простак

gawk -vRS="\nb=" '/a=/{ gsub("\n","\\n") }
{ if (RT == "") printf "%s", $0
  else print
}' ORS="\nb=" file

выход

$ ./shell.sh
a="xx\nxx\nxx"
b="y
y
y"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...