Grep" DOWN"在日志文件中声明并在行上添加变量

时间:2014-11-05 20:13:31

标签: unix awk sed grep

我在日志文件中有这样的表。我正在寻找一种方法来获取某些行并在其后面添加一个与我的服务器相关的句子,它在我的unix框中。那可能吗 ?

如果我使用此命令,我可以获得桌面上的所有DOWN     " grep DOWN文件"现在我也想要它也在哪个mdserver。我的第一个想法是在grep中使用-B开关来做到这一点。然而,由于mdserver *无法预期某些行高于" DOWN"项目。有什么建议 ?谢谢。

我在日志文件中的表

mdserver10
Corn    UP  0   0 
Bacon   UP  54  0 
Water   DOWN    0   0 
Fries   UP  746     0 
Turkey  UP  0   
mdserver11
Water   DOWN    0   0 
Fries   UP  746     0 
Turkey  UP  0    
mdserver12
Corn    DOWN    0   0 
Bacon   UP  54  0 
Water   UP  0   0 
Fries   UP  746     0 

我的预期结果。

Water   DOWN    0   0 is down on mdserver10
Water   DOWN    0   0 is down on mdserver11
Corn    DOWN    0   0 is down on mdnserver12

</table><table border="1" style="width:300px">mdserver10 </tr>
<tr><td style="width:310px"> Water     </td><td bgcolor ="red"> DOWN   </td><td style="width:50px"> 0            </td><td style="width:50px">  </tr>          </td></tr>

1 个答案:

答案 0 :(得分:2)

$ awk 'NF==1{srvr=$0; next} /DOWN/{print $0, "is down on", srvr}' file
Water   DOWN    0   0 is down on mdserver10
Water   DOWN    0   0 is down on mdserver11
Corn    DOWN    0   0 is down on mdserver12