Re: showコマンドにおける「|」と「^」と「スペース」の意味

この質問の投稿一覧へ

なし Re: showコマンドにおける「|」と「^」と「スペース」の意味

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-12-7 23:06
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
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の出力を別の処理につなげることになります。kou179193さんが例示されたincludeを続けると
#show interfaces | include ?
  LINE  Regular Expression
続けて入力するのは「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
これは「"0/0"または行頭から始まる"Interface"」という文字列を意味しますので、そのとおりの出力になります。

引用:
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
「"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

こういうのは周りの経験者の人に聞くと割と教えてもらえるんじゃないかと思いますよ

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.