Cisco インターフェイスの正規表現

Cisco インターフェイスの正規表現

次の例に示すように、Ciscoインターフェイス部分を解析し、インターフェイスがダウンしている場合を除き、一部または正規表現があるかどうか疑問にsed思います。grepawk

例:

!
interface FastEthernet0/1
 ip address 10.16.0.1 255.255.255.224
!
interface FastEthernet0/2
 ip address 10.17.0.1 255.255.255.224
 shutdown
!

sedインターフェイス部分を解析するには、次の正規表現を使用します。

sed -n -e '/^interface/,/^!/p' file.txt

ただし、上記の正規表現はすべてのインターフェイスを解析し、インターフェイスを除外するわけではありません。

ベストアンサー1

アッ

GNU awkまたはmawkを使用すると、次のことができます。

awk -v RS='!\n' '!/shutdown/'

出力:

interface FastEthernet0/1
 ip address 10.16.0.1 255.255.255.224

3行目でのみshutdownを見つけると、より正確に一致させることができます。

awk -v RS='!\n' -v FS='\n +' '$3 !~ /shutdown/'

sed

もちろん、sedを使用することもできますが、より複雑です。

1つのアプローチは開始方法ですが、印刷する前に予約済みスペースにレコード全体を収集します。これはGNU sedで動作します。

sed -n '/^interface/,/^!/ H; 1b; /^!/ { z; x; s/^\n//g; /shutdown/!p }'

おすすめ記事