Cara - menggunakan regex di Nexus untuk mencari ini | atau itu?

9

Sangat menjengkelkan - saya tidak dapat menemukan dokumentasi yang baik tentang cara menggunakan perintah regex Nexus.

Jadi, jika antarmuka saya terlihat seperti ini:

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 

Saya ingin menjalankan sesuatu yang mirip dengan:

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

Dan outputnya terlihat mirip (jika ini ada di 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.
Pseudocyber
sumber

Jawaban:

8

Anda bisa melakukan show run | egrep interface.Vlan|ip.address. Memang mengambil sedikit lebih banyak info, tetapi harus memberikan output yang serupa dengan apa yang Anda lihat di iOS. Saya pikir grep mungkin bekerja juga, tetapi saya menggunakan egrep dan mendapatkan output yang benar.

Odeonevets
sumber
Ini bekerja. Jadi, egrep telah mengambil tempat pertunjukan X | inc? Dan kode mencari "antarmuka" apa pun "Vlan" ATAU "ip" sesuatu "alamat"? (tanpa tanda kutip)
Pseudocyber
Saya percaya begitu. Anda dapat mengakses dokumentasi untuk egrep pada 7k di sini: cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/…
Odeonevets
5

Jika Anda hanya mencari alamat IP dari antarmuka Vlan, cara yang lebih baik adalah: show ip int br | grep -i vlan

Catatan: show ip int brdi NXOS hanya menampilkan antarmuka layer 3. Untuk melihat status semua antarmuka gunakanshow int br

MEMPERBARUI:

untuk NXOS 4.0 (2) dan sebelumnya: show run | grep -i face\ vlan|ip\ address

4.0 (3) dan lebih tinggi: show run | grep ignore-case face\ vlan|ip\ address

juga \bagaimana cara melarikan diri dari ruang angkasa dengan regex. Tautan untuk regex NXOS: http://www.cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/fundamentals/configuration/guide2/fun_3about_cli.html#wp1237003

emynd
sumber
Saya juga ingin memiliki informasi tentang informasi subnet, jadi itu sebabnya saya mencoba menariknya keluar dari "show run".
Pseudocyber
Saya melihat. Kemudian coba ini untuk ukuran: show run | grep -i face\ vlan|ip\ address ini juga akan menampilkan semua baris dalam output yang berisi "face vlan" atau "ip address"
emynd
Richard, terima kasih, tetapi dapatkan wortel di bawah f setelah grep -i
Pseudocyber
seharusnya melihat lebih dalam, permintaan maaf saya. Sintaks itu harus bekerja pada NXOS 4.0 (2) dan sebelumnya. Untuk 4.0 (3) dan ganti -idengan ignore_caseinilah tautan cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/…
emynd
Richard S, jadi kedengarannya seperti apa yang saya dapat lakukan di ios dengan | inc, sekarang saya harus lakukan di NXOS dengan | grep abaikan-kasus bla bla bla. Dan spasi harus diloloskan, seperti "\" ini tanpa tanda kutip? dan saya masih dapat menggunakan banyak | untuk menggunakan sebagai logis atau?
Pseudocyber
5

Sintaks alternatif yang melibatkan tanda kutip tunggal.

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

Di NX-OS, argumen parsing bekerja sangat mirip bash.

James Harr
sumber
3

The dokumentasi Saya telah melihat kata ini harus bekerja:

show run | inc interface_Vlan|ip_address

Meskipun sepertinya tidak bagi saya pada sakelar blade 4k. Saya sukses dengan

sh run | inc interface.Vlan|ip.address
Mike Marotta
sumber
Itu tidak bekerja pada 7K. 7K # sh run | inc interface_Vlan | ip_address 7K # sh run | inc interface_Vlan | ip_address - menempatkan wortel di bawah p. Tidak ada output sama sekali.
Pseudocyber
Saya tidak memiliki Nexus untuk mencobanya tetapi Anda dapat mencoba (interface.Vlan | ip.address). ^ Di bawah p terdengar seperti menafsirkan "| i" sebagai pipa kedua.
Dave Noonan
@Pseudocyber: * caret :-)
Paul Gear
Per dokumen, dan tidak seperti iOS, "garis bawah hanya diperlakukan sebagai ekspresi reguler untuk perintah terkait BPG"
belacqua
0

Jawaban mudahnya adalah, untuk pemetaan satu-ke-satu dari iOS ke NX-OS, tampilannya seperti ini:

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

Perhatikan bahwa ini lebih masuk akal ketika Anda meninggalkan paren tambahan dalam aslinya:

show run | inc (interface Vlan|ip address)

Kunci dalam contoh ini adalah bahwa untuk NX-OS, parens digantikan oleh tanda kutip.

Anda juga bisa menggunakan tanda kutip ganda, yaitu "" .

NX-OS adalah berbasis Linux [1] , dan menggunakan mesin ekspresi reguler * nix-like. Perintahnya aneh terdiri antara kata-kata bahasa Inggris dan idiom standar regex.

Misalnya, seperti apa egrep -vbash di egrep ignore-case
baris perintah ini?

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

Contoh verbosity (dan kekuatan) dari fitur regex baru:
show run | egrep ignore-case vpc | egrep invert-match ignore-case peer

Ini akan setara dengan bash-shell egrep -i vpc <input> | egrep -vi peer

Namun demikian, ada jauh lebih banyak kekuatan dan fleksibilitas di sini daripada di iOS saat ini.

Dokumentasi dasar Cisco ada di sini *, tetapi ?fitur baris perintah Anda memberi Anda pengingat cepat:

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

Anda kemudian ingin mencari "kesenangan" (apa lagi?) Untuk menemukan Panduan Konfigurasi Dasar (yang berisi bagian Ekspresi Reguler di bab Memahami Antarmuka Baris Perintah ).

Telur Paskah? Nomor bab dalam biner untuk dokumen ini.

Jika Anda berjalan melalui docs, Anda akan menemukan lebih banyak * nix-seperti alat baris perintah, termasuk cut, trdan pada 7K, seddan beberapa barang lainnya.

Juga, jangan mengabaikan prevdan nextpengubah untuk pertandingan 'sertakan'.

Ini akan mengambil baris yang berisi foo, serta tiga baris sebelum dan dua baris setelah untuk konteks:
show run | inc foo prev 3 next 2

belacqua
sumber