キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
告知

JTAC-Mid-Career-Recruitment-2021.3

CSC-campaign.JPG

 

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

1524
閲覧回数
0
いいね!
0
コメント

 

1. はじめに

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

 

 

2. 正規表現について

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

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

 

 

3. 使用可能な正規表現

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

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

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

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

\>

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

\w

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

\W

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

 

 

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

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

 

 

4.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

 

4.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

 

 

4.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

 

4.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

 

 

5. 関連コンテンツ

Nexus シリーズ:Tips - NX-OS の show コマンドの出力フィルターについて

 

Nexus スイッチ (NX-OS) : 設定例

 

 

2014 年 01 月 23 日(初版)

2020 年 04 月 24 日(Update)