一直在查看很多sed和awk代码示例,但仍然无法弄清楚我的问题。得到各种语法问题。
我得到了以下文本文件(注意整个事情实际上是在一行上):
<item><title>myTitle1</title><link>myLink1</link></item><item><title>myTitle2</title><link>myLink2</link></item> etc...
我需要插入:<tag>myTag</tag>
在每个</link>
之后。
最终结果应为:
<item><title>myTitle1</title><link>myLink1</link><tag>myTag</tag></item><item><title>myTitle2</title><link>myLink2</link><tag>myTag</tag></item> etc...
那里有任何sed / awk大师= P
答案 0 :(得分:0)
也许不是最漂亮的方式,但在这里工作:
sed -i 's/<\/link>/<\/link><tag>myTag<\/tag>/g' example.xml
-i
代表原位并替换文件而不是输出's/a/b/g'
搜索a
并替换为b
,其中g
代表所有外观的全局,而不只是一次/
必须转发至\/
还要注意尝试过多的关于XML的正则表达式,这将会很难实现
答案 1 :(得分:0)
使用awk你&#d;
$ awk '{gsub(/<\/link>/,"&<tag>myTag</tag>")}1' file
<item><title>myTitle1</title><link>myLink1</link><tag>myTag</tag></item><item><title>myTitle2</title><link>myLink2</link><tag>myTag</tag></item> etc...