シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

[Tips] NX-OS の show コマンドフィルターで使用出来る正規表現について

2014 年 1 月 23 日(初版)

-年-月-日(Update)

 

このドキュメントは NX-OS でshow コマンドへの出力フィルター (grep/egrep) で使用可能な正規表現について説明します。

 

1.正規表現について

正規表現とは「文字列の集合を1つの文字列にて表現する」方法となります。

NX-OS のオペレーションにおいては特定の文字列のパターンマッチングにより、より細かいレベルでのフィルタリングが可能となります。

 

2.使用可能な正規表現

grep/egrep で使用できる正規表現は以下の通りです。

それぞれの詳細な説明、及び動作に付いては次の「正規表現演算子の解説」を参照して下さい。

 

使用可能な正規表現演算子正規表現演算子の意味
.任意のキャラクター文字にマッチします
*直前の文字の繰り返しにマッチします。マッチする繰り返し回数は0回以上です。
+直前の文字の繰り返しにマッチします。マッチする繰り返し回数は1回以上です。
|前後の正規表現のどちらかにマッチします。
^文字列の先頭にマッチします
$文字列の末尾にマッチします
[char-list][]内の文字のいずれかにマッチします。
{n}直前の文字のn回以上の繰り返しにマッチします。
\<

“単語”の先頭にマッチします。

\>

“単語”の末尾にマッチします。

\w

“単語” を形成するキャラクタにマッチします。"[_a-zA-Z0-9]" と同義です。

\W

“単語” を形成するキャラクタ以外にマッチします。"[^_a-zA-Z0-9]" と同義です。

 

3.正規表現演算子の解説

ここでは使い勝手の良い正規表現についてのみ解説いたします。

 

3.1.「.

'.'(コンマ) は任意のキャラクタにマッチします。例えば "ab." は "aba"、"abc"、"ab1" にマッチします。

以下の例では 9 月 8 日 11 時 49 分の10秒台のログを出力しています。

 

N7K# show logging logfile | egrep "Sep  8 11:49:1."

2013 Sep  8 11:49:12 N7K %ETHPORT-5-IF_DUPLEX: Interface port-channel2, operational duplex mode changed to Full

2013  Sep  8 11:49:12 N7K %ETHPORT-5-IF_RX_FLOW_CONTROL: Interface  port-channel2, operational Receive Flow Control state changed to off

2013  Sep  8 11:49:12 N7K %ETHPORT-5-IF_TX_FLOW_CONTROL: Interface  port-channel2, operational Transmit Flow Control state changed to off

2013  Sep  8 11:49:13 N7K %ETHPORT-3-IF_ERROR_VLANS_REMOVED: VLANs 10,20,30  on Interface port-channel1 are removed from suspended state.

2013 Sep  8 11:49:17 N7K %ETHPORT-5-IF_TRUNK_UP: Interface port-channel1, vlan 10,20,30 up

2013 Sep  8 11:49:18 N7K %ETHPORT-5-IF_TRUNK_UP: Interface Ethernet1/1, vlan 10,20,30 up

 

3.2.「*

'*'(アスタリスク)は直前の文字の繰り返しにマッチします。例えば "ab*c" は "ac"、"abc"、"abbc" にマッチします。

以下の例では,各インターフェースのステータスとリンクスピードを抽出しています。

 

N7K# show interface | eg mgmt|^Eth|100*

mgmt0is up

  Internet Address is 1.110.8.6/8

  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec

1000 Mb/s  full-duplex,

  1 minute output rate 104 bits/sec, 0 packets/sec

Ethernet2/48 is down (SFP not inserted)

  Hardware: 1000 Ethernet, address: 001b.54c2.b446 (bia c47d.4f15.ec4f)

  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec

  EtherType is 0x8100

Ethernet10/24 is up

  Belongs to Po10

  Hardware: 10000 Ethernet, address: e8ed.f338.8d6a (bia e8ed.f338.8d6a)

  MTU 1500 bytes, BW 10000000 Kbit, DLY 10 usec

10 Gb/s  full-duplex,, media type is 10G

  EtherType is 0x8100

 

3.3.「+

'+'(プラス)は直前の文字の繰り返しにマッチします。例えば "ab+c" は "abc"、"abbc"、"abbc" にマッチします。

以下の例ではインターフェース情報の文字列のみの行を排除し出力しています。

 

N5K# show interface eth1/1 | egrep [0-9]+

Ethernet1/1 is up

  Belongs to Po4096

  Hardware: 1000/10000 Ethernet, address: 0005.73de.3e08 (bia 0005.73de.3e08)

  MTU 1500 bytes, BW 10000000 Kbit, DLY 10 usec

  reliability 255/255, txload 1/255, rxload 1/255

  full-duplex, 10 Gb/s, media type is 10G

  EtherType is 0x8100

  Last link flapped 00:00:19

  12 interface resets

  30 seconds input rate 1192 bits/sec, 0 packets/sec

  30 seconds output rate 1328 bits/sec, 0 packets/sec

  Load-Interval #2: 5 minute (300 seconds)

    input rate 160 bps, 0 pps; output rate 696 bps, 1 pps

    200 unicast packets  7421967 multicast packets  4 broadcast packets

    7422171 input packets  678496807 bytes

    0 jumbo packets  0 storm suppression bytes

    0 runts  0 giants  0 CRC  0 no buffer

    0 input error  0 short frame  0 overrun   0 underrun  0 ignored

    0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

    0 input with dribble  0 input discard

    0 Rx pause

    0 unicast packets  1103621 multicast packets  20 broadcast packets

    1103641 output packets  122853205 bytes

    0 jumbo packets

    0 output error  0 collision  0 deferred  0 late collision

    0 lost carrier  0 no carrier  0 babble 0 output discard

    0 Tx pause

 

3.4.「|

'|'(パイプ)は前後の正規表現のどちらかにマッチします。例えば "ab|ac" は "ab"、"ac" にマッチします。

以下の例では先頭が『I 』か『O 』を指定することで,ヘッダーなどを省き NetFlow のエントリーのみを出力しています。

 

N7K# sh hardware flow ip module 2 | egrep "^I |^O "

I S761       010.255.224.002 010.255.236.011 001:00000:02048 0000000846 ......

I S761       010.255.224.002 224.000.000.005 089:00513:00048 0000000126 ......

O S37        010.255.224.002 010.255.236.011 001:00000:02048 0000000846 ......

 

3.5.「^

'^'(キャレット)は文字列の先頭にマッチします。

以下の例では IP アドレスの第1オクテットが 10 の ARP のみを出力しています。

 

N7K# show ip arp | egrep ^10\.

10.255.232.42   00:09:41  0022.5579.cec1  Vlan10         

10.255.232.11   00:09:40  0022.5579.cec1  Vlan17         

10.255.232.27   00:09:41  0022.5579.cec1  Vlan27 

 

3.6.「$

$’(ダラー)文字列の末尾にマッチします。

以下の例では IP アドレスマスク /29 のインターフェースと設定された IP アドレスを確認しています。

 

test_nf# sh run interface | egrep ^int|29$

interface Vlan1

interface Vlan10

  ip address 10.255.232.1/29

interface Vlan11

  ip address 10.255.232.9/29

interface Vlan20

interface Vlan21

  ip address 192.168.255.253/29

 

また、以下の例では 'show interface' で Po10 にアサインされたインターフェースのステータスを確認しています。

 

N7K# show interface brief | egrep 10$

Eth2/25        1      eth  access up      none                        10G(S) 10

Eth2/26        1      eth  access up      none                        10G(S) 10

Eth2/27        1      eth  access up      none                        10G(S) 10

Eth2/28        1      eth  access up      none                        10G(S) 10

Eth2/29        1      eth  access up      none                        10G(S) 10

 

3.7. 「[char-list]」

'[char-list]' は大カッコ内のいずれかの一文字にマッチします。例えば "a[Bb]c" は "aB"、"ab" にマッチします。

カッコ内を[a-z]、[A-Z]、[0-9] といった形式で範囲での指定も可能です。"[0-9]"は "[0123456789]"、"[a-e]" は "[abcde]" と同等です

また、カッコの先頭に ’^’ がついた場合、カッコ内の文字以外にマッチします。例えば "abc[^2-9]" は "abc0"、"abc1" にマッチします。

以下の例では VDC_MGR メッセージでロギングベルが0から5のメッセージのみを抽出しています。

 

N7K# show logging logfile | egrep %VDC.+-[0-5]-

2014 Jan 16 14:06:57 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 1 state changed to create pending

2014 Jan 16 14:06:57 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 2 state changed to create pending

2014 Jan 16 14:06:57 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 3 state changed to create pending

2014 Jan 16 14:06:57 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 4 state changed to create pending

2014 Jan 16 14:08:02 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 1 state changed to create in progress

2014 Jan 16 14:08:03 F10_N7010_C %VDC_MGR-5-VDC_STATE_CHANGE: vdc 1 state changed to active

2014 Jan 16 14:08:03 F10_N7010_C %VDC_MGR-2-VDC_ONLINE: vdc 1 has come online

 

4.0. 関連ドキュメント

[Tips] NX-OS の show コマンドの出力フィルターについて

URL: https://supportforums.cisco.com/docs/DOC-37110

バージョン履歴
改訂番号
1/1
最終更新:
‎11-01-2013 03:43 PM
更新者: