将 ping 的输出修改为文本文件,变成一行

将 ping 的输出修改为文本文件,变成一行

我正在使用循环和此命令在文本文件中显示我的 ping 结果:

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

结果就是8行代码!

正在 Ping xxxxx [xxx.xxx.xxx.xxx],数据为 32 字节:

来自 xxx.xxx.xxx.xxx 的回复:字节=32 时间<1ms TTL=125

xxx.xxx.xxx.xxx 的 Ping 统计信息:

数据包:已发送 = 1,已接收 = 1,丢失 = 0(0% 丢失),

近似往返时间(以毫秒为单位):

最小值 = 0 毫秒,最大值 = 0 毫秒,平均值 = 0 毫秒

我只想显示最后一行,因为我不想得到一个巨大的文本文件。

完美的结果是:

Ping 11oct2011 16h56:最小值 = 0ms,最大值 = 0ms,平均值 = 0ms

答案1

听起来你会喜欢尾巴。

ping test_server | tail -n 1

我用 cygwin 得到它。

答案2

仅使用 Windows 7 中的 cmd.exe,以下命令应该能够实现您预期的输出:

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

输出结果为:

18:22:24.45 2011 年 11 月 10 日 最小值 = 13 毫秒,最大值 = 13 毫秒,平均值 = 13 毫秒

答案3

我喜欢@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/, /

相关内容