कैसे - इस की खोज के लिए Nexus में regex का उपयोग करें | या वो?


9

तो बढ़ रहा है - मैं नेक्सस 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। यह थोड़ी अधिक जानकारी हड़पता है, लेकिन आपको आईओएस में जो दिखता है, उसी तरह का आउटपुट देना चाहिए। मुझे लगता है कि grep भी काम कर सकता है, लेकिन मैंने egrep का इस्तेमाल किया और सही आउटपुट मिला।


यह काम। इसलिए, एक्सरेप ने शो एक्स की जगह ले ली है इंक? और कोड "इंटरफ़ेस" कुछ भी "वलान" या "आईपी" कुछ भी "पता" दिखता है? (बिना उद्धरण के)
स्यूडोसाइबर

मुझे ऐसा विश्वास है। आप यहां 7k पर egrep के लिए प्रलेखन का उपयोग कर सकते हैं: cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/…
Odeonevets

5

यदि आप वलान इंटरफेस के आईपी पते की तलाश कर रहे हैं, तो एक बेहतर तरीका हो सकता है: show ip int br | grep -i vlan

नोट: show ip int brNXOS में केवल लेयर 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 regex के लिए लिंक: 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 यह आउटपुट में सभी पंक्तियों को दिखाएगा जिसमें या तो "फेस
वेलन

रिचर्ड, धन्यवाद, लेकिन grep के बाद एफ के तहत एक गाजर मिलता है
-आई

गहरी दिखनी चाहिए थी, मेरी क्षमायाचना। उस सिंटैक्स को NXOS 4.0 (2) और पहले का काम करना चाहिए। 4.0 (3) और ऊपर की जगह के लिए -iके साथ ignore_caseयहाँ है लिंक cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/...
emynd

रिचर्ड एस, इसलिए ऐसा लगता है कि मैं क्या करने में सक्षम होने के साथ IOS एक | inc, मुझे अब NXOS में करने की जरूरत है a | grep इग्नोर-केस ब्ला ब्ला ब्ला। और रिक्त स्थान को बिना उद्धरण के इस "\" की तरह बचाना होगा? और मैं अभी भी कई का उपयोग कर सकता हूँ तार्किक या के रूप में उपयोग करने के लिए?
स्यूडोसाइबर

5

एक वैकल्पिक वाक्यविन्यास जिसमें एकल उद्धरण शामिल हैं।

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

NX-OS में, तर्क पार्सिंग बहुत काम करता है जैसे बैश।


3

प्रलेखन मैंने देखा है का कहना है कि यह काम करना चाहिए:

show run | inc interface_Vlan|ip_address

हालांकि यह 4k ब्लेड स्विच पर मेरे लिए नहीं लगता है। मुझे सफलता मिली

sh run | inc interface.Vlan|ip.address

यह एक 7k पर काम नहीं करता है। 7K # श रन | inc interface_Vlan | ip_address 7K # sh run | inc interface_Vlan | ip_address - पी के नीचे एक गाजर डालता है। कोई आउटपुट नहीं।
स्यूडोसाइबर

मेरे पास यह कोशिश करने के लिए नेक्सस नहीं है, लेकिन आप कोशिश कर सकते हैं (interface.Vlan | ip.address)। ^ ^ पी के तहत लगता है जैसे यह एक दूसरे पाइप के रूप में "| 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 के लिए, Parens को उद्धरण चिह्नों से बदल दिया जाता है।

आप दोहरे उद्धरण चिह्नों का भी उपयोग कर सकते हैं ""

एनएक्स-ओएस लिनक्स-आधारित [1] है , और एक * निक्स-जैसे नियमित अभिव्यक्ति इंजन का उपयोग करता है। अंग्रेजी विषम और मानक रेगेक्स मुहावरों के बीच कमांड विषम हैं।

उदाहरण के लिए, egrep -vबैश में क्या होगा जैसा दिखेगा 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 की तुलना में यहां काफी अधिक शक्ति और लचीलापन है।

मूल सिस्को प्रलेखन यहाँ है *, लेकिन आपकी कमांड-लाइन ?सुविधा आपको त्वरित अनुस्मारक देती है:

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और 7K पर, sedऔर कुछ अन्य उपहार।

इसके अलावा, 'शामिल' मैचों के लिए prevऔर nextसंशोधक की अनदेखी न करें ।

यह foo वाली लाइनों को, साथ ही संदर्भ के लिए तीन लाइनों को पहले और दो लाइनों को हड़प लेगा:
show run | inc foo prev 3 next 2

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.