sons que você gostaria de cauda.
ping test_server | tail -n 1
Eu entendi com o cygwin.
Estou usando um loop e este comando para exibir meu resultado de ping em um arquivo de texto:
ping.exe -n 1 xxx.xxx.xxx.xxx>> trace.txt
O resultado é 8 linhas de código!
Pinging xxxxx [xxx.xxx.xxx.xxx] with 32 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=32 time<1ms TTL=125
Ping statistics for xxx.xxx.xxx.xxx:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Gostaria de exibir a última linha, pois não quero um arquivo de texto grande como resultado.
O resultado perfeito seria:
Ping 11oct2011 16h56 : Minimum = 0ms, Maximum = 0ms, Average = 0ms
Com apenas cmd.exe do Windows 7, o comando a seguir deve ser capaz de alcançar a saída esperada:
for /f "delims=" %a in ('ping -n 1 INSERTIPHERE ^| find "Minimum"') do @echo %TIME% %DATE% %a >> ping.txt
A saída seria:
18: 22: 24.45 11/10/2011 Mínimo = 13 ms, Máximo = 13 ms, Média = 13 ms
Eu gosto da resposta do @bdecaf, mas prefiro uma saída mais útil.
$ ping svcuat1.ec2 | sed '/PING/!d;N;s/\n/, /'
PING svcuat1.ec2 (172.31.16.60): 56 data bytes, 64 bytes from 172.31.16.60: icmp_seq=0 ttl=63 time=91.171 ms
O que isso faz é:
!d
) as linhas que correspondem a PING
(ou seja, exclua o restante) N
s/\n/, /
Tags command-line ping