首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何匹配跨越两行的一组字符串?

如何匹配跨越两行的一组字符串?
EN

Stack Overflow用户
提问于 2019-04-09 14:31:28
回答 1查看 42关注 0票数 0

我有一个文件,它可能包含以下任何一个组合中的代码块。我需要检查文件中是否有“进口遥测”。

  1. 进口遥测{前缀tm;}
  2. 进口中转机自动遥测{ tm;}
  3. 导入 遥测{tm前缀;}

我的代码:

代码语言:javascript
复制
#!/bin/sh

if grep -Eq "import\s+telemetry"  "./xyz.yang";
    then
      echo "This is a telemetry yang"
    else
      echo "This is a normal yang"
fi

上述方法适用于1和2,但不适用于3。

我试过跟随,但它是贪婪的,并将匹配“进口之类的.遥测”以及。

代码语言:javascript
复制
if awk '/import/,/telemetry/' "./xyz.yang";

有什么建议吗?

我的解决方案:

代码语言:javascript
复制
#!/bin/sh
    if grep -Pzq 'import[ \n\r\t]+telemetry' './xyz.yang';
        then
          echo "This is a telemetry yang"
        else
          echo "This is a normal yang"
    fi
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 14:44:59

向grep添加一个-z标志,它就能工作了。

代码语言:javascript
复制
#!/bin/sh

if grep -Eqz "import\s+telemetry"  "./xyz.yang";
    then
      echo "This is a telemetry yang"
    else
      echo "This is a normal yang"
fi
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55595269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档