【问题标题】:Regex match line above (Perl)上面的正则表达式匹配行(Perl)
【发布时间】:2017-11-29 08:01:12
【问题描述】:

我想编写一个简单的脚本,从 Cisco 配置中为我提供每个未使用的端口(关闭)。关闭端口看起来总是一样的:

interface Ethernet100/1/40
  shutdown

我可以使用哪个正则表达式来始终获取 'shutdown' 上方的行? 我想用 Perl 写这个脚本,请帮帮我。

【问题讨论】:

  • grep -B1 'shutdown' file | awk NR==1

标签: regex perl cisco


【解决方案1】:

打开多行选项并使用它:

^.+$(?=\s+shutdown)

这将匹配单词 shutdown 之前的行。

它基本上是在寻找一行任何字符^.+$,向前寻找一些空格,然后是shutdown

在这里试试:https://regex101.com/r/WFqX5A/1

【讨论】:

    【解决方案2】:

    你也可以通过在上面添加几个字母来匹配“interface”之后的所有内容

    ^interface\s\K.*$(?=\s+shutdown)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多