Як користуватися regex у Nexus для пошуку цього | чи це?


9

Настільки обтяжуюче - я не можу знайти гарну документацію щодо використання команди Negeus 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.

Відповіді:


8

Ви можете зробити show run | egrep interface.Vlan|ip.address. Він захоплює трохи більше інформації, але повинен надати схожий вихід з тим, що ви бачите в IOS. Я думаю, що grep може також працювати, але я використав egrep і отримав правильний вихід.


Це працює. Отже, егреп відбувся шоу X | вкл? І код шукає "інтерфейс" нічого "Vlan" АБО "ip" що-небудь "адресу"? (без лапок)
Псевдокібер

Я так думаю. Ви можете отримати доступ до документації на egrep на 7k тут: cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/…
Odeonevets

5

Якщо ви просто шукаєте IP-адреси інтерфейсів Vlan, кращим способом може бути: 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 | grep -i face\ vlan|ip\ address це також покаже всі рядки у висновку, які містять або "face vlan", або "ip address"
emynd

Річард, спасибі, але дістаньте морквину під f після grep -i
Псевдоцибер

я повинен був заглянути глибше, мої вибачення. Цей синтаксис повинен працювати на NXOS 4.0 (2) та новіших версіях. Для 4.0 (3) і до заміни -iз ignore_caseось посилання cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os / ...
emynd

Річард S, так це звучить як те, що я раніше міг робити в ios з | inc, мені тепер потрібно робити в NXOS з | греп ігнорувати-справа бла-бла-бла. І пробіли потрібно уникати, як це "\" без лапок? і я все ще можу використовувати декілька | 's, щоб використовувати як логічні чи'?
Псевдокібер

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 run | inc interface_Vlan | ip_address - кладе морквину під п. Вихід взагалі немає.
Псевдокібер

У мене немає Nexus, щоб спробувати його, але ви можете спробувати (interface.Vlan | ip.address). ^ Під p звучить так, що він інтерпретує "| i" як другу трубу.
Дейв Нунан

@Pseudocyber: * caret :-)
Пол Гір

За документи, на відміну від IOS, "підкреслення трактується лише як регулярний вираз для команд, що стосуються BPG"
belacqua

0

Проста відповідь полягає в тому, що для відображення один на один з IOS в NX-OS це виглядає так:

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

Зауважте, що це має більше сенсу, коли ви залишаєте зайві паролі в оригіналі:

show run | inc (interface Vlan|ip address)

Ключовим у цьому прикладі є те, що для NX-OS парени замінюються лапками.

Ви також могли використовувати подвійні лапки, тобто "" .

NX-OS базується на Linux [1] та використовує * nix-подібний механізм регулярного вираження. Команди непарні складаються між англійською формулюванням та стандартними регекс-ідіомами.

Наприклад, те, що було б egrep -vу bash, виглядало б як 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

Це було б рівнозначно баш-оболонці 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

Потім ви захочете здійснити пошук "весело" (що ще?), Щоб знайти посібник з конфігурації основ (який містить розділ "Регулярні вирази" в розділі " Розуміння інтерфейсу командного рядка ").

Пасхальне яйце? Номери глав наведені у двійковій формі для цього документа.

Якщо пройти через документи, ви знайдете набагато більше * NIX-як інструменти командного рядка, в тому числі cut, trі на 7К, sedі деякі інші ласощі.

Крім того, не забувайте про модифікатори prevі відповіді nextна "включати".

Це захопить рядки, що містять foo, а також три рядки до та два рядки після для контексту:
show run | inc foo prev 3 next 2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.