2010-01-12 8 views
0

у меня есть некоторые XML-файлы в LinuxЗаменить символы новой строки в

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

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

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

где атрибут б не заменить

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

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

ответ

0

поглазеть

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" 
+0

большое спасибо GhostDog ​​^^ – brian

0

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

sed -n '/^a/ {:b; $b; N; /^a.*\"$/ {s/\n/\\n/gp;b};bb}; /^a/! p' 
Смежные вопросы