-2

我目前正在编写一个脚本来从 cisco 配置生成报告以用于审计目的。使用“grep”命令,我能够成功捕获全局配置。

但挑战在于每个界面都做到这一点。例如,我想知道哪些接口有“no ip redirects”、“no ip unreachables”等行。如何在 bash 中完成此操作?

先感谢您!

4

1 回答 1

0

这不能用 轻松完成grep,但要awk处理:

cat file
!
interface GigabitEthernet0/13
 description Server_32_main
 spanning-tree portfast
 no ip redirects
!
interface GigabitEthernet0/14
 description Server_32_log
 switchport access vlan 666
 spanning-tree portfast
!
interface GigabitEthernet0/15
 description UPS_20
 spanning-tree portfast
!

如您所见,每个组由 分隔!,因此我们使用它来分隔每条记录。
要仅获取接口名称,请执行以下操作:

awk -v RS="!" -F"\n" '/no ip redirects/ {print $2}' file
interface GigabitEthernet0/13

要获取接口配置,请执行以下操作:

awk -v RS="!" '/no ip redirects/' file

interface GigabitEthernet0/13
 description Server_32_main
 spanning-tree portfast
 no ip redirects

一次获得更多模式:

awk -v RS="!" '/no ip redirects/ || /no ip unreachables/' file
于 2014-11-13T07:24:29.633 回答