我正在使用循环和此命令在文本文件中显示我的 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/, /