Cisco CLIのshowコマンドは、出力にパイプ|を組み合わせることで欲しい行だけに絞り込めます。
今回は、その中でも実務で頻出する「2つのキーワードで絞り込む」パターンを中心に、組み合わせ技を整理します。

1. 2つのワードを含ませるテクニック

① OR検索(ワードAまたはワードBが含まれる行を表示)

キーワードの間を|(パイプ記号)で区切ります。

構文:show <コマンド> | include ワードA|ワードB

ホスト名とドメイン名を同時に確認したいとき:

Switch# show running-config | include hostname|domain

Upしているポートと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|recovery

3. 基本のパイプコマンド一覧

  • | 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パターンを覚えておくと、何百行もあるコンフィグやログから必要な情報だけを数秒で取り出せるようになります。