如何-在Nexus中使用正则表达式进行搜索| 或者那个?


9

如此令人烦恼的是-我找不到有关如何使用Nexus regex命令的优质文档。

因此,如果我的界面如下所示:

interface Vlan224
  description MANAGEMENT
  no shutdown
  ip flow monitor netflow-monitor input  
  no ip redirects
  ip address 10.214.224.2/24
  ip ospf passive-interface
  ip router ospf 1 area 0.0.0.3
  ip pim sparse-mode
  hsrp version 2
  hsrp 224 
  preempt 
  priority 120
  ip 10.214.224.1 

我想运行类似以下内容:

show run | inc (interface Vlan)|(ip address)

输出看起来类似于(如果在IOS上):

interface Vlan10
ip address 10.1.10.1 255.255.255.0
interface Vlan 11
ip address 10.1.11.1 255.255.255.0
etc.

Answers:


8

你可以做一个show run | egrep interface.Vlan|ip.address。它确实获取了更多信息,但是应该提供与IOS中类似的输出。我认为grep可能也可以工作,但是我使用egrep并获得了正确的输出。


这可行。因此,egrep代替了Show X | 公司?然后代码查找“ interface” anything“ Vlan”或“ ip” anything“ address”?(不含引号)
伪网络网

我相信是这样。:您可以访问该文档的egrep在7K这里cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/...
Odeonevets

5

如果您只是在寻找Vlan接口的IP地址,则更好的方法可能是: show ip int br | grep -i vlan

注意:show ip int br在NXOS中,仅显示第3层接口。要查看所有接口的状态,请使用show int br

更新:

对于NXOS 4.0(2)及更早版本: show run | grep -i face\ vlan|ip\ address

4.0(3)及更高版本: show run | grep ignore-case face\ vlan|ip\ address

\也是如何使用正则表达式来逃避空间。NXOS正则表达式的链接:http : //www.cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/fundamentals/configuration/guide2/fun_3about_cli.html#wp1237003


我还希望获得有关子网信息的信息,所以这就是为什么我试图将其从“ show run”中删除。
伪网络网

我知道了。然后试一试它的大小:show run | grep -i face\ vlan|ip\ address 这还将显示输出中包含“ face vlan”或“ ip address”的所有行
emynd 2013年

理查德,谢谢,但是在grep -i之后在f下得到了一个胡萝卜
伪网络网

很抱歉,我深表歉意。该语法应在NXOS 4.0(2)及更早版本上适用。对于4.0(3)和高达代替-iignore_case这里的链接cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/...
emynd

理查德·S(Richard S),这听起来像我以前在ios中使用| 公司,我现在需要在NXOS中使用| grep无视情况等等等等。并且需要转义空格,例如不带引号的“ \”吗?而且我仍然可以使用多个|作为逻辑或?
伪网络网

5

涉及单引号的替代语法。

# show run | inc 'interface Vlan|ip address'

在NX-OS中,参数解析非常类似于bash。


3

我看到的文档说这应该工作:

show run | inc interface_Vlan|ip_address

虽然对于我来说似乎不是4k刀片式交换机。我成功了

sh run | inc interface.Vlan|ip.address

这在7K上不起作用。7K#sh run | inc interface_Vlan | ip_address 7K#sh运行| inc interface_Vlan | ip_address-将胡萝卜放在p之下。完全没有输出。
伪网络网

我没有Nexus可以尝试,但您可以尝试(interface.Vlan | ip.address)。p下方的^听起来像是将“ | i”解释为第二个管道。
Dave Noonan

@Pseudocyber:*脱字符:-)
Paul Gear

根据文档,与IOS不同,“下划线仅被视为BPG相关命令的正则表达式”
belacqua 2014年

0

一个简单的答案是,对于从IOS到NX-OS的一对一映射,它看起来像这样:

IOSshow run | inc (interface Vlan)|(ip address)
NX-OSshow run | inc 'interface Vlan|ip address'

请注意,当您在原件中省去多余的括号时,这更有意义:

show run | inc (interface Vlan|ip address)

此示例中的关键是对于NX-OS,括号被引号替换。

您也可以使用双引号,即""

NX-OS基于Linux [1],并使用类似于* nix的正则表达式引擎。这些命令在英语措辞和标准正则表达式惯用语之间是奇怪的。

例如,egrep -vbash中的内容将类似于:egrep ignore-case
在命令行中,其内容类似于

show run | egrep ignore-case vpc
要么
show run | inc ignore-case vpc

新正则表达式功能的冗长(和强度)示例:
show run | egrep ignore-case vpc | egrep invert-match ignore-case peer

这相当于一个bash shell egrep -i vpc <input> | egrep -vi peer

但是,这里的功能和灵活性要比当前的IOS大得多。

基本的Cisco文档在这里 *,但是您的命令行?功能可以快速提醒您:

5k# show run | ?
  cut      Print selected parts of lines.
  diff     Show difference between current and previous invocation (creates temp files: remove them
           with 'diff-clean' command and dont use it on commands with big outputs, like 'show 
           tech'!) 
  egrep    Egrep - print lines matching a pattern
  grep     Grep - print lines matching a pattern
  head     Display first lines
  human    Output in human format
  last     Display last lines
  less     Filter for paging
  no-more  Turn-off pagination for command output
  section  Show lines that include the pattern as well as the subsequent lines that are more
           indented than matching line 
  sort     Stream Sorter
  tr       Translate, squeeze, and/or delete characters
  uniq     Discard all but one of successive identical lines
  vsh      The shell that understands cli command
  wc       Count words, lines, characters
  xml      Output in xml format (according to .xsd definitions)
  begin    Begin with the line that matches
  count    Count number of lines
  end      End with the line that matches
  exclude  Exclude lines that match
  include  Include lines that match

5k# show run | inc ?
  WORD         Search for the expression
  ignore-case  Ignore case difference when comparing strings
  line-exp     Print only lines where the match is a whole line

5k# show run | egrep ?
  WORD          Search for the expression
  count         Print a total count of matching lines only
  ignore-case   Ignore case difference when comparing strings
  invert-match  Print only lines that contain no matches for <expr>
  line-exp      Print only lines where the match is a whole line
  line-number   Print each match preceded by its line number
  next          Print <num> lines of context after every matching line
  prev          Print <num> lines of context before every matching line
  word-exp      Print only lines where the match is a complete word

然后,您将需要搜索“ fun”(还有什么?)以找到“ 基础配置指南”(其中包含“ 了解命令行界面”一章中的“正则表达式”部分)。

复活节彩蛋?本文档的章节编号是二进制的。

如果你走过的文档,你会发现有更多的* nix样的命令行工具,包括cuttr,并在7K,sed和其他一些东西。

另外,请不要忽略“ include”匹配项的prevand next修饰符。

这将获取包含foo的行以及上下文的前三行和后两行:
show run | inc foo prev 3 next 2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.