gpt4 book ai didi

regex - Grep 模式与多行与操作

转载 作者:行者123 更新时间:2023-12-05 01:23:35 25 4
gpt4 key购买 nike

如何使用 grep 确定多行中存在的模式?下面是我需要检查的多行模式是否存在于文件中

 Status:    True
Type: Master

我尝试了下面的命令,但它在一行中检查多个字符串,但在多行中的字符串模式匹配失败

  if cat file.txt  | grep -P '^(?=.*Status:.*True)(?=.*Type:.*Master)'; then echo "Present"; else echo "NOT FOUND"; fi

文件.txt

Interface:                      vlan
Status: True
Type: Master
ID: 104

最佳答案

使用 gnu-grep 你可以这样做:

grep -zoP '(?m)^\s*Status:\s+True\s+Type:\s+Master\s*' file

Status: True
Type: Master

解释:

  • P:启用 PCRE 正则表达式模式
  • -z:读取多行输入
  • -o:只打印匹配的数据
  • (?m) 启用 MULTILINE 模式,以便我们可以在每行之前使用 ^
  • ^: 开始一行

关于regex - Grep 模式与多行与操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72254938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com