Here is my sample :
PING my.host.local (10.10.10.10): 56 data bytes
64 bytes from 10.10.10.10: icmp_seq=0 ttl=63 time=2.034 ms
--- my.host.local ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.034/2.034/2.034/0.000 ms
私は次のことをしたいと思います:/ 64 bytes /なら、次のように印刷します: "'my.host.local' is up"
問題は、/ 64バイト/の正規表現を実行すると、ホスト名「my.host.local」を示す行が失われ、そのフィールドを使用して最終メッセージを印刷できないことです。
あなたは何をしますか?
乾杯、
ベストアンサー1
変数を使用してホスト名を保存します。
awk '/^PING/ { host = $2 } /^64 bytes/ { print host " is up" }'
ホストがダウンしたときに何かをするには、応答が見えるかどうかに注意を払い、最後に両方のケースを処理する必要があります。
awk '/^PING/ { host = $2 }
/^64 bytes/ { up = 1 }
END {
if (up) { print host " is up" }
else { print host " is down" }
}'