在 { } 内进行 Grep

在 { } 内进行 Grep

我有来自负载均衡器的原始文本配置,并且只想查找已应用 TCP 配置文件的虚拟服务器。下面是一个示例配置,我只想从中输出第一行(awk如果需要,我可以稍后使用它来过滤 VS 名称)。请注意,我是离线执行此操作,无法访问设备。

ltm virtual /Common/custom_ldap-vs {
    destination /Common/10.1.1.2:389
    ip-protocol tcp
    mask 255.255.255.255
    persist {
        /Common/source_addr {
            default yes
        }
    }
    pool /Common/dev_itim_rhitimdevtds_ldap-pool
    profiles {
       <b> /Common/Custom_tcp_Profile { } </b>
    }
    source 0.0.0.0/0
    source-address-translation {
        type automap
    }
    translate-address enabled
    translate-port enabled
    vlans {
        /Common/vlan_3
    }
    vlans-enabled
}

答案1

首先尝试从文件中删除换行符。然后将每个虚拟服务器分成自己的行。然后您可以 grep 您的配置文件字符串:

perl -pe 's/\n//mg' yourfile.txt | perl -pe 's/ltm virtual/\n/g' | grep Custom_tcp_Profile | perl -pe 's/(.*?){.*/$1/'

相关内容