showコマンドにおける「|」と「^」と「スペース」の意味
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
kou179193
投稿数: 8
CCNP勉強中の者です。お世話になります。
showコマンドにおける
「|(パイプライン)」と「^(キャレット)」の使用方法を最近知ったのですが、こちらについて質問させてください。
例えば、以下コマンドを打ったとします。
R6#show ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
FastEthernet0/1 192.168.8.1 YES NVRAM up up
ここで、以下のように「|」と「^」を組み合わせて打つと下記のようになりました。
R6#show ip int bri | i 0/0 |^Interface
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
R6#show ip int bri | i 0/0 | ^Interface
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
質問したいのは、上記のように、includeと共に、「|」と「^」も使用する場合、「|」の後にスペースを入れると、そのあとに入力された抽出条件は無効化されてしまうのでしょうか。
逆に「i」を使用する場合は「|」のあとにスペースを入れないと弾かれてしまうので、スペースは入れるものだと思っていたので、混乱しています。
どなたか教えて頂けましたら幸いです。
showコマンドにおける
「|(パイプライン)」と「^(キャレット)」の使用方法を最近知ったのですが、こちらについて質問させてください。
例えば、以下コマンドを打ったとします。
R6#show ip int bri
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
FastEthernet0/1 192.168.8.1 YES NVRAM up up
ここで、以下のように「|」と「^」を組み合わせて打つと下記のようになりました。
R6#show ip int bri | i 0/0 |^Interface
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
R6#show ip int bri | i 0/0 | ^Interface
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
質問したいのは、上記のように、includeと共に、「|」と「^」も使用する場合、「|」の後にスペースを入れると、そのあとに入力された抽出条件は無効化されてしまうのでしょうか。
逆に「i」を使用する場合は「|」のあとにスペースを入れないと弾かれてしまうので、スペースは入れるものだと思っていたので、混乱しています。
どなたか教えて頂けましたら幸いです。
Re: showコマンドにおける「|」と「^」と「スペース」の意味
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
引用:えーっと、パイプとキャレットが何を意味するかはご存知ですか?
LPICとか勉強されてるとご存知かもしれませんが、
|(パイプ):標準出力を別の処理の標準入力に接続する(リダイレクト)
^(キャレット):「行頭」を意味する正規表現のメタキャラクタ
です。
そして、実際にIOSのCLIでどう見えるのかというと
この場合はshow interfacesの出力を別の処理につなげることになります。kou179193さんが例示されたincludeを続けると
続けて入力するのは「Regular Expression(正規表現)」であるとなっています。
正規表現として文字列を見た場合
引用:これは「"0/0"または行頭から始まる"Interface"」という文字列を意味しますので、そのとおりの出力になります。
引用:「"0/0"を含むもの」で区切られてしまっているので、ここで正規表現とみなされなくなっているようです。なので最初の条件だけになっていると理解して良いと思います。
ということで、CLIに指定できる文字列は「正規表現文字列」として認識できる「(区切り文字なしの)ひとかたまり」だけが対象となると思ってよいかと思います。
Cisco IOSのCLIにおける正規表現の扱いはこの辺読むとよいかと思います。
https://www.cisco.com/c/ja_jp/td/docs/cian/iosxe/iosxe3s/cg/009/fundamentals-xe-3s-book/fundamentals-xe-3s-book_chapter_0101.pdf
こういうのは周りの経験者の人に聞くと割と教えてもらえるんじゃないかと思いますよ
showコマンドにおける
「|(パイプライン)」と「^(キャレット)」の使用方法を最近知ったのですが、こちらについて質問させてください。
LPICとか勉強されてるとご存知かもしれませんが、
|(パイプ):標準出力を別の処理の標準入力に接続する(リダイレクト)
^(キャレット):「行頭」を意味する正規表現のメタキャラクタ
です。
そして、実際にIOSのCLIでどう見えるのかというと
#show interfaces | ?
append Append redirected output to URL (URLs supporting append operation
only)
begin Begin with the line that matches
count Count number of lines which match regexp
exclude Exclude lines that match
format Format the output using the specified spec file
include Include lines that match
redirect Redirect output to URL
section Filter a section of output
tee Copy output to URL
#show interfaces | include ?
LINE Regular Expression
正規表現として文字列を見た場合
引用:
R6#show ip int bri | i 0/0 |^Interface
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
引用:
R6#show ip int bri | i 0/0 | ^Interface
FastEthernet0/0 192.168.5.2 YES NVRAM up up
Serial0/0 unassigned YES NVRAM administratively down down
ということで、CLIに指定できる文字列は「正規表現文字列」として認識できる「(区切り文字なしの)ひとかたまり」だけが対象となると思ってよいかと思います。
Cisco IOSのCLIにおける正規表現の扱いはこの辺読むとよいかと思います。
https://www.cisco.com/c/ja_jp/td/docs/cian/iosxe/iosxe3s/cg/009/fundamentals-xe-3s-book/fundamentals-xe-3s-book_chapter_0101.pdf
こういうのは周りの経験者の人に聞くと割と教えてもらえるんじゃないかと思いますよ
Re: showコマンドにおける「|」と「^」と「スペース」の意味
msg# 1.2
kou179193
投稿数: 8
arashi1977様
ご回答ありがとうございました。
区切り文字(スペース)を入れたことでひとかたまりとして認識されなかった、という事なのですね。
大変参考になりました。
マニュアルについてもありがとうございました。
ご回答ありがとうございました。
区切り文字(スペース)を入れたことでひとかたまりとして認識されなかった、という事なのですね。
大変参考になりました。
マニュアルについてもありがとうございました。