Shell替换文件中的字符串

时间:2013-05-30 19:01:29

标签: sed awk cut

我有一个网址数组。我有一个打开它们的脚本,如果它们打开没有任何错误,请将状态显示为正在运行,否则不运行。现在我想用这个状态替换html中url({ABC_Service_Status})的相应状态。我在哪里放置我的sed语句以及如何从URL中删除ABCService

urlArray=('http://server:port/ABCservice/services/ABCservice?wsdl' 'http://server:port/DEFservice/services/DEFservice?wsdl')       
for url in "${urlArray[@]}"
 do 
   result=`curl $url | head -1`    
    if (echo $result | grep '<?xml' >/dev/null 2>&1); then           
          echo Running
    else
        echo Not Running
     fi    
done

当前输出:

Running
Not Running

我有一个包含以下内容的html文件(version.html)

 <tr><td>ABCService</td><td>12.11.0</td><td>{ABCService_Status}</td>/tr>
 <tr><td>DEFService</td><td>12.11.0</td><td>{DEFService_Status}</td>/tr>

更换后所需的输出:

 <tr><td>ABCService</td><td>12.11.0</td><td>Running</td>/tr>
 <tr><td>DEFService</td><td>12.11.0</td><td>Not Running</td>/tr>

1 个答案:

答案 0 :(得分:0)

您可以在sed命令中组合变量和字符串文字:

for service in ABCService DEFService
    do sed --in-place s/\{${service}_Status\}/REPLACEMENT/ version.html
done

但是,您将解析每个服务的整个文件。