キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2169
閲覧回数
0
いいね!
0
コメント
YAMADA Akinori
Cisco Employee
Cisco Employee

 

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)

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします