我有一个xmltv文件,其中包含以下用于程序启动/停止时间的样式行
<programme start="20150914003000" stop="20150914020000" channel="Noor TV">
我想在开始/停止时间结束时添加+0000,如下所示
<programme start="20150914003000 +0000" stop="20150914020000 +0000" channel="Noor TV">
我正在使用Windows sed并且到目前为止
sed -r "/<programme start=\"/ s/^([0-9]{14})/\1 +0000/g" < "xml.xml" > "xml2.xml"
它给了我sed不能读&gt;:无效的参数 在dos窗口中,我可以看到它添加+0000但不写新文件 我知道它有些愚蠢,但我无法弄明白。 THKS。
答案 0 :(得分: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"
答案 1 :(得分: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尝试过它
答案 2 :(得分:-1)
第一个&lt;需要反斜杠,而不是正斜杠。
sed -r "\<programme start=\"/ s/^([0-9]{14})/\1 +0000/g" < "xml.xml" > "xml2.xml"