bash脚本用于循环,在每个输出上添加html标记

bash脚本用于循环,在每个输出上添加html标记,html,bash,loops,for-loop,tags,Html,Bash,Loops,For Loop,Tags,要添加诸如td/td等html标记(基本上是从输出构建表),我在for循环中使用sed: for host in `cat hostlist`;do echo "$host " | sed 's|\(.*\)|<tr><td>\1</td>|'; cat $host | grep "CPU util" | grep " [5-9][0-9]%" | sed 's|\(.*\)|<td>\1</td></tr>|'; done

要添加诸如td/td等html标记(基本上是从输出构建表),我在for循环中使用sed:

for host in `cat hostlist`;do echo "$host " | sed 's|\(.*\)|<tr><td>\1</td>|'; cat $host | grep "CPU util" | grep " [5-9][0-9]%" | sed 's|\(.*\)|<td>\1</td></tr>|'; done
sed的输出:

<tr><td>switch1 </td>
<tr><td>switch2 </td>
<td>Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%</td></tr>
<td>Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%</td></tr>
<td>CPU utilization for five seconds: 63%; one minute: 23%;  five minutes: 18%</td></tr>
<tr><td>switch3 </td>
<td>CPU utilization for five seconds: 78%/0%; one minute: 43%; five minutes: 40%</td></tr>
switch1
开关2
核心0:5秒的CPU利用率:56%;1分钟:11%;五分钟:8%
核心0:5秒的CPU利用率:56%;1分钟:11%;五分钟:8%
5秒的CPU利用率:63%;1分钟:23%;五分钟:18%
开关3
五秒钟的CPU利用率:78%/0%;1分钟:43%;五分钟:40%
这不会将标记添加到空行中,如switch1下面的一行(当grep返回0时),对于switch 2,我希望所有outut都在一个表单元格中,如下所示:

期望输出:

<tr><td>switch1 </td>
<td></td></tr>
<tr><td>switch2 </td>
<td>Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%<brZ
Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%<br>
CPU utilization for five seconds: 63%; one minute: 23%;  five minutes: 18%</td></tr>
<tr><td>switch3 </td>
<td>CPU utilization for five seconds: 78%/0%; one minute: 43%; five minutes: 40%</td></tr>
switch1
开关2
核心0:5秒的CPU利用率:56%;1分钟:11%;五分钟:8%
awk'/CPU util/{
打印“$0”
} 
!/CPU util/{
如果($1==“”)
打印“$0”
其他的
打印“$0”
}'文件名`

我会帮你的。由于我对它进行了测试,并且它似乎有效,所以我决定回答而不是评论。

使用awk,类似于
awk'/CPU util/{print”“$0”“}/CPU util/{print”“$0”“}'
。你会在几秒钟内找到正确答案,甚至更少的行数。
<tr><td>switch1 </td>
<td></td></tr>
<tr><td>switch2 </td>
<td>Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%<brZ
Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%<br>
CPU utilization for five seconds: 63%; one minute: 23%;  five minutes: 18%</td></tr>
<tr><td>switch3 </td>
<td>CPU utilization for five seconds: 78%/0%; one minute: 43%; five minutes: 40%</td></tr>
awk '/CPU util/{
    print "<td>" $0 "</tr>"
} 
!/CPU util/ {
    if ($1 == "")
        print "<tr><td>" $0 "</tr>"
    else 
        print "<tr><td>" $0 "</td>"
}' file_name`