2013-11-01 03:43 PM 2020-04-24 12:13 PM 更新
このドキュメントは NX-OS でshow コマンドへの出力フィルター (grep/egrep) で使用可能な正規表現について説明します。
正規表現とは「文字列の集合を1つの文字列にて表現する」方法となります。
NX-OS のオペレーションにおいては特定の文字列のパターンマッチングにより、より細かいレベルでのフィルタリングが可能となります。
grep/egrep で使用できる正規表現は以下の通りです。
それぞれの詳細な説明、及び動作に付いては次の「正規表現演算子の解説」を参照して下さい。
使用可能な正規表現演算子 | 正規表現演算子の意味 |
---|---|
. | 任意のキャラクター文字にマッチします |
* | 直前の文字の繰り返しにマッチします。マッチする繰り返し回数は0回以上です。 |
+ | 直前の文字の繰り返しにマッチします。マッチする繰り返し回数は1回以上です。 |
| | 前後の正規表現のどちらかにマッチします。 |
^ | 文字列の先頭にマッチします |
$ | 文字列の末尾にマッチします |
[char-list] | []内の文字のいずれかにマッチします。 |
{n} | 直前の文字のn回以上の繰り返しにマッチします。 |
\< |
“単語”の先頭にマッチします。 |
\> |
“単語”の末尾にマッチします。 |
\w |
“単語” を形成するキャラクタにマッチします。"[_a-zA-Z0-9]" と同義です。 |
\W |
“単語” を形成するキャラクタ以外にマッチします。"[^_a-zA-Z0-9]" と同義です。 |
ここでは使い勝手の良い正規表現についてのみ解説いたします。
'.'(コンマ) は任意のキャラクタにマッチします。例えば "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
'*'(アスタリスク)は直前の文字の繰り返しにマッチします。例えば "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
'+'(プラス)は直前の文字の繰り返しにマッチします。例えば "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
'|'(パイプ)は前後の正規表現のどちらかにマッチします。例えば "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 ......
'^'(キャレット)は文字列の先頭にマッチします。
以下の例では 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
’$’(ダラー)文字列の末尾にマッチします。
以下の例では 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
'[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
Nexus シリーズ:Tips - NX-OS の show コマンドの出力フィルターについて
2014 年 01 月 23 日(初版)
2020 年 04 月 24 日(Update)
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます