2015-09-15 2 views
0

У меня есть файл XMLTV, который имеет следующие строки стиля для запуска программы раза/остановитьSed добавить текст после матча

<programme start="20150914003000" stop="20150914020000" channel="Noor TV"> 

Я хочу добавить +0000 к концу начала/остановки времени, как следующее

<programme start="20150914003000 +0000" stop="20150914020000 +0000" channel="Noor TV"> 

Я использую окно SED и получил это далеко

sed -r "/<programme start=\"/ s/^([0-9]{14})/\1 +0000/g" < "xml.xml" > "xml2.xml" 

его дает мне SED косяк прочитал>: неверный аргумент в окнах dos я вижу, что он добавляет +0000, но не пишет новый файл. Я знаю его что-то немое, но я просто не могу понять это. thks.

ответ

-1

Первым < нужен обратный слеш, а не косая черта.

sed -r "\<programme start=\"/ s/^([0-9]{14})/\1 +0000/g" < "xml.xml" > "xml2.xml" 
0

Попробуйте

sed -r "/<programme start=/ s/^([0-9]{14})/\1 +0000/g" "xml.xml" > "xml2.xml" 

или (Posix версия)

sed "/<programme start=/ s/^([0-9]\{14\})/\1 +0000/g" "xml.xml" > "xml2.xml" 
0
$cat xml.xml 
<programme start="20150914003000" stop="20150914020000" channel="Noor TV"> 
$sed -r 's/start="([0-9]{14})" stop="([0-9]{14})"/start="\1 +0000" stop="\2 +0000"/' xml.xml >xml2.xml 
$cat xml2.xml 
<programme start="20150914003000 +0000" stop="20150914020000 +0000" channel="Noor TV"> 

пытался его онлайн Linux

+0

спасибо Кервин, ваш метод работал для меня. – blackbear199