我目前正在编写一个脚本,以便从审计目的生成cisco配置报告。使用'grep'命令,我能够成功捕获全局配置。
但挑战是按界面进行。例如,我想知道哪些接口有这些行'no ip redirects','no ip unreachables'等。我怎样才能在bash中完成这个?
提前谢谢!
答案 0 :(得分: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