我无法找到解决这个简单问题的方法:
我在脚本中有一个XML文件和一个URL作为参数:$ URL。
我需要在$ URL之后找到字符串“NO_CODE”(可能是:http://www.webpage2.com)并将此字符串替换为:CODE_OK。
有什么简单的方法可以做到这一点吗?
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage1.com"><Data
ss:Type="String">Name of the webpage 1</Data></Cell>
<Cell><Data ss:Type="String">NO_CODE</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage2.com"><Data
ss:Type="String">Name of the webpage 2</Data></Cell>
<Cell><Data ss:Type="String">NO_CODE</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage3.com"><Data
ss:Type="String">Name of the webpage 3</Data></Cell>
<Cell><Data ss:Type="String">NO_CODE</Data></Cell>
</Row>
非常感谢。
答案 0 :(得分:0)
通过GNU awk和sed,
$ awk -v RS="</Row>" '/http:\/\/www\.webpage2\.com/{sub(/NO_CODE/,"CODE_OK")}1' ORS="</Row>" file | sed '$d'
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage1.com"><Data
ss:Type="String">Name of the webpage 1</Data></Cell>
<Cell><Data ss:Type="String">NO_CODE</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage2.com"><Data
ss:Type="String">Name of the webpage 2</Data></Cell>
<Cell><Data ss:Type="String">CODE_OK</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65" ss:HRef="http://www.webpage3.com"><Data
ss:Type="String">Name of the webpage 3</Data></Cell>
<Cell><Data ss:Type="String">NO_CODE</Data></Cell>
</Row>
答案 1 :(得分:0)
另一种方式
awk '/www.webpage2.com/{x=1}x{if(sub(/NO_CODE/,"CODE_OK"))x=0}1' file
带变量
awk -vy="$website" '$0~y{x=1}x{if(sub(/NO_CODE/,"CODE_OK"))x=0}1' file