2

Я использую цикл и эту команду, чтобы отобразить мой результат пинга в текстовом файле:

ping.exe -n 1 xxx.xxx.xxx.xxx>> trace.txt

Результат - 8 строк кода!

Pinging xxxxx [xxx.xxx.xxx.xxx] с 32 байтами данных:

Ответ от xxx.xxx.xxx.xxx: байт = 32 время <1 мс TTL = 125

Статистика пинга для xxx.xxx.xxx.xxx:

Пакеты: отправлено = 1, получено = 1, потеряно = 0 (потеря 0%),

Приблизительное время прохождения туда и обратно в миллисекундах:

Минимум = 0 мс, Максимум = 0 мс, Среднее = 0 мс

Я просто хотел бы отобразить последнюю строку, так как я не хочу большого текстового файла в результате.

Идеальный результат будет:

Ping 11oct2011 16h56: Минимум = 0мс, Максимум = 0мс, Среднее = 0мс

3 ответа3

2

Звучит, ты бы хотел хвост.

ping test_server | tail -n 1

Я получил это с Cygwin.

1

С помощью только cmd.exe из Windows 7 следующая команда должна достичь ожидаемого результата:

for /f "delims=" %a in ('ping -n 1 INSERTIPHERE ^| find "Minimum"') do @echo %TIME% %DATE% %a >> ping.txt

Выход будет:

18:22:24.45 11.10.2011 Минимум = 13мс, Максимум = 13мс, Среднее = 13мс

0

Мне нравится ответ @ bdecaf, но я предпочитаю более полезный вывод.

$ 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

Что это делает:

  • "Не удалять" (!d) строки, соответствующие PING (то есть удалить остальные)
  • Добавить следующую строку ввода в пространство образца N
  • Поменяйте местами символ новой строки с запятой и пробелом s/\n/, /

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .