如何以人类可读的形式将 mtr 命令输出到标准输出?

ken*_*orb 2 osx routing traceroute

当我运行时sudo mtr 4.2.2.1,它在终端中循环运行。

我想保持与以下相同的格式:

Host                                                   
1. 192.168.15.1                                        
2. ???
3. 10.254.254.x                                      
4. 10.254.254.x                                     
5. core1.lon2.he.net                           
6. 10gigabitethernet2-1.core1.lon2.he.net
7. a.resolvers.level3.net
Run Code Online (Sandbox Code Playgroud)

但打印一次到标准输出。

在手册中,我只能看到以 XML、JSON、CSV 或 RAW 格式打印它的选项,但不能像上面那样以人类可读的格式打印一次。基本上我在使用traceroute命令时对类似的格式感兴趣,但对于mtr. 是否可以?

我试图以 as 运行sudo mtr -c1 4.2.2.1 | head -n20,但它破坏了终端,所以reset每次使用后我都必须使用它。有什么解决方法吗?

Ste*_*itt 5

如果要处理mtr的输出,或在mtr退出后保持显示,则需要在报告模式或更好的宽报告模式下运行它:

mtr -r -c1 4.2.2.1
Run Code Online (Sandbox Code Playgroud)

或者

mtr -w -c1 4.2.2.1
Run Code Online (Sandbox Code Playgroud)

(不同之处在于,在宽报告模式下,它不会截断主机名)。

mtr -w -c1 4.2.2.1 | awk 'NR>1 {print $1, $2}'
Run Code Online (Sandbox Code Playgroud)

会给出接近你所追求的东西。