Bunu aramak için Nexus'ta normal ifade nasıl kullanılır | yada bu?


9

Çok ağırlaştırıcı - Nexus regex komutunun nasıl kullanılacağı hakkında iyi belgeler bulamıyorum.

Yani, arayüzlerim şöyle görünüyorsa:

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 

Şuna benzer bir şey çalıştırmak istiyorum:

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

Ve çıktıya benzer görünmek (eğer bu IOS üzerindeyse):

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.

Yanıtlar:


8

Bir yapabilirsiniz show run | egrep interface.Vlan|ip.address. Biraz daha fazla bilgi toplar, ancak IOS'ta gördüklerinize benzer çıktılar sağlamalıdır. Bence grep de işe yarayabilir, ama egrep kullandım ve doğru çıktı aldım.


Bu çalışıyor. Yani, egrep X şovunun yerini aldı | inc? Ve kod "arayüz" bir şey "Vlan" VEYA "ip" bir şey "adresi" arar? (tırnak işaretleri olmadan)
Pseudocyber

Öyle inanıyorum. Egrep
Odeonevets

5

Sadece Vlan arabirimlerinin IP adreslerini arıyorsanız, daha iyi bir yol olabilir: show ip int br | grep -i vlan

Not: show ip int brNXOS'ta yalnızca katman 3 arayüzleri gösterilir. Tüm arabirimlerin durumunu görmek için şunu kullanın:show int br

GÜNCELLEME:

NXOS 4.0 (2) ve öncesi için: show run | grep -i face\ vlan|ip\ address

4.0 (3) ve sonraki sürümler: show run | grep ignore-case face\ vlan|ip\ address

Ayrıca \regex ile uzaydan kaçmak için nasıl. NXOS normal ifadesi için bağlantı: http://www.cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/fundamentals/configuration/guide2/fun_3about_cli.html#wp1237003


Ben de alt ağ bilgileri hakkında bilgi istiyorum, bu yüzden "show run" dışarı çekmeye çalışıyordu.
Sözde

Anlıyorum. Sonra boyutu için bunu deneyin: show run | grep -i face\ vlan|ip\ address Bu aynı zamanda çıktıda "yüz vlan" veya "ip adresi" içeren tüm satırları gösterecektir
emynd

Richard, teşekkürler, ama grep -i sonra f altında bir havuç almak
Pseudocyber

daha derinlere bakmalıydım, özür dilerim. Bu sözdizimi NXOS 4.0 (2) ve önceki sürümlerde çalışmalıdır. Yukarı 4.0 (3) ve değiştirme için -ibirlikte ignore_caseburada bağlantı var cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/...
emynd

Richard S, bu yüzden bir ios ile ios içinde yapabileceğim gibi geliyor | inc, şimdi bir | grep görmezden gelir blah blah blah. Ve tırnak işaretleri olmadan bu "\" gibi boşluklar kaçmak gerekir? ve hala mantıksal ya da 's olarak kullanmak için birden çok |
Pseudocyber

5

Tek tırnak içeren alternatif bir sözdizimi.

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

NX-OS'de, argüman ayrıştırma bash'a çok benzer.


3

Dokümantasyon gördüğüm bu çalışması gerekir diyor:

show run | inc interface_Vlan|ip_address

Her ne kadar bir 4k bıçak anahtarında bana öyle görünmüyor. İle başarılı oldum

sh run | inc interface.Vlan|ip.address

Bu bir 7K üzerinde çalışmaz. 7K # sh koşmak | inc interface_Vlan | ip_address 7K # sh çalıştırma | inc interface_Vlan | ip_adresi - p altına bir havuç koyar. Hiç çıktı yok.
Sözde

Denemek için Nexus yok ama deneyebilirsiniz (interface.Vlan | ip.address). P altındaki ^ "| i" yi ikinci bir boru olarak yorumluyormuş gibi geliyor.
Dave Noonan

@Pseudocyber: * caret :-)
Paul Gear

Dokümanlar başına ve
IOS'dan

0

Kolay cevap şudur: IOS ile NX-OS arasında bire bir eşleme için şöyle görünür:

İOS : show run | inc (interface Vlan)|(ip address)
NX-OS : show run | inc 'interface Vlan|ip address'

Orijinalde ekstra parensleri bıraktığınızda bunun daha anlamlı olduğunu unutmayın:

show run | inc (interface Vlan|ip address)

Bu örnekteki anahtar, NX-OS için parenlerin tırnak işaretleri ile değiştirilmesidir.

Ayrıca çift tırnak işareti kullanabilirsiniz "" .

NX-OS Linux tabanlıdır [1] ve * nix benzeri normal ifade motoru kullanır. Komutlar İngilizce ifadeler ile standart normal ifade deyimleri arasında gariptir.

Örneğin, egrep -vbash'da ne olurdu egrep ignore-case
Komut satırında şöyle görünecektir

show run | egrep ignore-case vpc
veya
show run | inc ignore-case vpc

Yeni normal ifade özelliklerinin ayrıntısına (ve gücüne) bir örnek:
show run | egrep ignore-case vpc | egrep invert-match ignore-case peer

Bu bir bash kabuğuna eşdeğerdir egrep -i vpc <input> | egrep -vi peer

Bununla birlikte, burada mevcut IOS'dan çok daha fazla güç ve esneklik var.

Temel Cisco belgeleri burada *, ancak komut satırı ?özelliğiniz size hızlı hatırlatmalar sağlıyor:

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

Daha sonra, Temel Bilgiler Yapılandırma Kılavuzu'nu ( Komut Satırı Arayüzünü Anlama bölümündeki Normal İfade bölümünü içeren ) bulmak için "eğlenceli" (başka ne?) Aramak isteyeceksiniz .

Paskalya yumurtası? Bölüm numaraları bu doküman için ikilidir.

Eğer docs yürümek, bir sürü daha fazlasını içeren komut satırı araçları, nix benzeri * bulacaksınız cut, trve 7K üzerinde, sedve diğer bazı güzellikler.

Ayrıca, 'içerme' eşleşmelerini prevve nextdeğiştiricileri gözden kaçırmayın .

Bu, foo içeren satırların yanı sıra içerik için üç satır önce ve iki satır sonra olacaktır:
show run | inc foo prev 3 next 2

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.