Modifica a saída do ping para o arquivo de texto em uma única linha

2

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

    
por Waza_Be 11.10.2011 / 10:37

3 respostas

2

sons que você gostaria de cauda.

ping test_server | tail -n 1

Eu entendi com o cygwin.

    
por 11.10.2011 / 10:57
1

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

    
por 11.10.2011 / 12:26
0

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 é:

  • "Não excluir" ( !d ) as linhas que correspondem a PING (ou seja, exclua o restante)
  • Anexe a próxima linha de entrada ao espaço de padrão N
  • Troque o caractere de nova linha por vírgula e espaço s/\n/, /
por 01.08.2017 / 16:49