Bash 如何在grep找到一行后添加内容?

Bash 如何在grep找到一行后添加内容?,bash,shell,command-line,grep,newline,Bash,Shell,Command Line,Grep,Newline,我希望看到对特定服务器的ping何时停止 所以现在我有这样的想法:ping8.8.8.8 | grep time=11&&date 这会ping google并打印每一行ping值为11.x的数据,这只是为了测试,所以我有一些输出,这些输出不是一直都在那里,但足够频繁,我可以测试它。然后我有&&date,我想它会打印grep找到字符串的日期。。但事实并非如此。所以我现在的问题是如何得到它,这样在grep吐出的每一行中,我都可以附加当前的时间戳。或者更好的办法是在grep吐出的每一行前面加上前缀。

我希望看到对特定服务器的ping何时停止

所以现在我有这样的想法:
ping8.8.8.8 | grep time=11&&date

这会ping google并打印每一行ping值为11.x的数据,这只是为了测试,所以我有一些输出,这些输出不是一直都在那里,但足够频繁,我可以测试它。然后我有&&date,我想它会打印grep找到字符串的日期。。但事实并非如此。所以我现在的问题是如何得到它,这样在grep吐出的每一行中,我都可以附加当前的时间戳。或者更好的办法是在grep吐出的每一行前面加上前缀。一个命令就可以吗?还是我需要一个简单的shell脚本

提前谢谢。我希望能尽快得到答复。:)


祝大家圣诞快乐

看看它是否适合您:

ping 8.8.8.8 |  while read line; do echo "$(date): $line"; done | grep time=13

您还可以通过使用
while!来检查远程主机何时可用!ping…
示例,如果您的
8.8.8.8
路径出现故障:

declare -i cnt=0; while ! ping -c 1 8.8.8.8; do ((cnt++)); echo "test '$cnt' - network down on $(date)"; sleep 60; done
它将每分钟检查一次主机是否可用并报告,例如:

test '10' - network down on Sat Dec 26 16:38:48 CST 2015
一旦建立网络路径,脚本将自行终止