Cisco CLIのshowコマンドは、出力にパイプ|を組み合わせることで欲しい行だけに絞り込めます。
今回は、その中でも実務で頻出する「2つのキーワードで絞り込む」パターンを中心に、組み合わせ技を整理します。
1. 2つのワードを含ませるテクニック
① OR検索(ワードAまたはワードBが含まれる行を表示)
キーワードの間を|(パイプ記号)で区切ります。
構文:show <コマンド> | include ワードA|ワードB
ホスト名とドメイン名を同時に確認したいとき:
Switch# show running-config | include hostname|domainUpしているポートとIPアドレスの設定状態だけ見たいとき:
Switch# show ip interface brief | include up|10.48.接続中(connected)またはトランク(trunk)のポートを抽出:
Switch# show interfaces status | include connected|trunk② AND検索(ワードAかつワードBの両方が含まれる行を表示)
パイプとincludeを2回重ねて繋ぎます。1回目の絞り込み結果に対して、さらに2回目の絞り込みをかける形です。
構文:show <コマンド> | include ワードA | include ワードB
コンフィグから「GigabitEthernet」を含む「interface」行だけ抽出:
Switch# show running-config | include interface | include Gigabitルーティングテーブルから特定サブネットかつネクストホップ(via)の行だけ抽出:
Switch# show ip route | include 10.48. | include via③ AND+NOT検索(ワードAを含み、ワードBを除外する)
includeで絞り込んだ後にexcludeで不要な行を削ります。実務で非常によく使う組み合わせです。
構文:show <コマンド> | include ワードA | exclude ワードB
Statusが「up」で、かつIPアドレスが未割り当て(unassigned)のポートを除外:
Switch# show ip interface brief | include up | exclude unassignedこれで、IPアドレスが割り当てられていてLink Upしているポート/SVIだけが残ります。
2. 正規表現を活用した高度なフィルタリング
検索ワードに特殊文字を組み合わせると、意図しない引っかかり(誤検知)を防げます。
^(行頭指定):指定した文字で始まる行だけを抽出
Switch# show running-config | include ^interface|^vlan行の先頭がinterfaceまたはvlanで始まる行だけを抽出します。
$(行末指定):指定した文字で終わる行だけを抽出
Switch# show cdp neighbors | include /1$ポート番号の末尾が/1で終わる対向機器の行だけを抽出します。
大文字・小文字を無視する((?i))
IOS-XEなどで大文字・小文字を区別せず検索したい場合は、先頭に(?i)を付けます。
Switch# show running-config | include (?i)errdisable|recovery3. 基本のパイプコマンド一覧
- | include(inc):指定ワードを含む行を表示。IPアドレス、特定Statusの抽出に使う
- | exclude(exc):指定ワードを除外した行を表示。シャットダウンポートや未設定ポートの非表示に使う
- | section(sec):指定した設定ブロック全体を表示。インターフェースやVTYライン設定の丸ごと確認に使う
- | begin(beg):指定ワードが現れた行以降を最後まで表示。BGPやOSPFなど特定のルーティング設定以降の確認に使う
まとめ
- 「AまたはB」を探したい場合 →
| include A|B - 「AかつB」を探したい場合 →
| include A | include B - 「Aを含み、Bを除外」したい場合 →
| include A | exclude B
この3パターンを覚えておくと、何百行もあるコンフィグやログから必要な情報だけを数秒で取り出せるようになります。