1

我不知道如何解决这个简单的问题:

我有一个 XML 文件和一个 URL 作为脚本中的参数:$URL。

我需要在 $URL(可能是:http ://www.webpage2.com )之后找到字符串“NO_CODE”,并将该字符串替换为: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>

非常感谢。

4

2 回答 2

0

另一种 awk 方式

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
于 2014-07-04T10:11:18.757 回答
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>
于 2014-07-04T09:41:05.133 回答