我可以匹配一个搜索字符串并在 IOS 中显示它上面的行吗?

网络工程 思科-ios
2021-07-14 10:20:10

例如,我有一个 MAC 地址,我知道它是其中一个接口上的 MAC 地址。但是,当我搜索 MAC 地址所属的接口时,它不会向我显示它属于哪个接口,因为这是在单独的行上。

当使用 grep 通过路由器配置时,我可以使用grep -5 [MAC ADDRESS]显示搜索字符串所在行的上方 5 行和下方 5 行。MAC地址如何不在运行配置中,所以这可能吗?

我现在使用的一种解决方法是使用sh interaces | 开始 [MAC 地址]

如果我知道下面的接口,我就知道 MAC 地址属于哪个接口。

那么是否有等效的grep -5 [MAC ADDRESS]

2个回答

我从另一个论坛得到了这个 awnser:

我想通了,但是您需要一个具有 IOS.sh 的 IOS 版本:

term shell
sh ru | grep -u H.H.H | tail 10

-u 标志将显示您正在搜索的 mac 地址上方的所有行,然后 tail 命令将只显示该输出的最后十行。您可以用任意多行替换“10”。

Cisco IOS.sh 的先决条件

• Cisco IOS 版本15.1(4)M、15.1(2)S 和更高版本。

• 必须配置并启用 Cisco IOS.sh 才能在路由器上使用 Cisco IOS.sh 特性和功能。

http://www.cisco.com/c/en/us/td/docs/ios/netmgmt/configuration/guide/Convert/IOS_Shell/nm_ios_shell.pdf

根据以下 Cisco 文档,没有此类等效的 grep-5 命令。pipe 命令确实支持正则表达式来帮助过滤输出。

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/fundamentals/configuration/15_sy/fundamentals-15-sy-book/cf-cli-search.html

以下命令可以使输出更具可读性。(交替)

show interfaces | include Gig|0000.0000.0000


Switch#show interfaces | in Gig|000c.5e48.0801
GigabitEthernet0/0 is up, line protocol is up (connected) 
GigabitEthernet0/1 is up, line protocol is up (connected) 
  Hardware is iGbE, address is 000c.5e48.0801 (bia 000c.5e48.0801)
GigabitEthernet0/2 is up, line protocol is up (connected) 
GigabitEthernet0/3 is up, line protocol is up (connected) 
GigabitEthernet1/0 is up, line protocol is up (connected) 
GigabitEthernet1/1 is up, line protocol is up (connected) 
GigabitEthernet1/2 is up, line protocol is up (connected) 
GigabitEthernet1/3 is up, line protocol is up (connected) 

某些交换机 IOS 代码将列出其接口的 MAC 地址,如下所示。

show mac address-table

或者

show mac-address-table