为了添加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:
switch1
switch2
Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%
Core 0: CPU utilization for five seconds: 56%; one minute: 11%; five minutes: 8%
CPU utilization for five seconds: 63%; one minute: 23%; five minutes: 18%
switch3
CPU utilization for five seconds: 78%/0%; one minute: 43%; five minutes: 40%输出使用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下面的一行(当grep返回0时),对于开关2,我希望在一个表单元格中的所有外部单元格如下所示:
期望产出:
<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>有什么建议吗?谢谢。
发布于 2015-01-13 15:42:59
awk '/CPU util/{
print "<td>" $0 "</tr>"
}
!/CPU util/ {
if ($1 == "")
print "<tr><td>" $0 "</tr>"
else
print "<tr><td>" $0 "</td>"
}' file_name`会帮你做这件事。因为我测试了它,而且它看起来很有效,所以我决定回答而不是评论。
https://stackoverflow.com/questions/27924437
复制相似问题