在shell

时间:2015-10-28 15:00:25

标签: shell recursion awk grep

我需要帮助使用路由器配置备份数据库。我需要获取其配置中没有vrfshutdown的接口列表。 我得到通过awk '/^interface/,/!/'传递配置文件的所有接口配置列表。这给了我以下输出:

interface TenGigE0/3/0/0
 description 
 service-policy output QOS
 ipv4 mtu 1500
 ipv4 address 13.24.15.3 255.255.255.252
 carrier-delay up 3000 down 0
 load-interval 30
 dampening
!
interface TenGigE0/3/0/1
 description Link To 
!
interface TenGigE0/3/0/1.302
 description 
 vrf 1671
 ipv4 address 13.24.14.11 255.255.255.254
 encapsulation dot1q 302

现在,我试图排除包含vrf行的接口。我试图做的是grep for vrf,当匹配时,删除包含上面“interface”一词的行。不幸的是没有运气。也许某人有更复杂的解决方案。

1 个答案:

答案 0 :(得分:0)

如果你有结构化记录awk可以解决这个问题。给出你的中间文件

2$ awk 'BEGIN{RS=ORS="!\n"} !/vrf/' interface

将打印没有" vrf"

的记录
interface TenGigE0/3/0/0
 description
 service-policy output QOS
 ipv4 mtu 1500
 ipv4 address 13.24.15.3 255.255.255.252
 carrier-delay up 3000 down 0
 load-interval 30
 dampening
!
interface TenGigE0/3/0/1
 description Link To
!