gpt4 book ai didi

regex - 下一个单词的 GREP 跟随包含变量的字符串

转载 作者:行者123 更新时间:2023-12-05 09:31:09 24 4
gpt4 key购买 nike

我在 bash 变量中有这个字符串

name : br-ext protocols : [protocol] name : br-ex protocols : [] name : br-local protocols : [other protocol] name : br-int protocols : []

和一个包含名称的变量 $br :值(即 br-ext)

给定 $br,我想访问它后面的协议(protocol)字符串(因此 $br br-ext 应该得到 'protocol' 而 $br-ex 应该得到 '')

我已经试过了,但它似乎没有访问变量的值

echo $protocols | grep -oP "(?<=\"$br\")[^ ]*"

有什么建议吗?

最佳答案

你可以使用

echo "$protocols" | grep -oP "$br\\s+protocols\\s*:\\s*\\[\\K[^][]*"

参见 online demo

请注意,$protocols 在双引号内(变量被引用)。

模式匹配

  • \s+ - 一个或多个空格
  • protocols - protocols
  • 这个词
  • \s*:\s* - 用零个或多个空格括起来的冒号
  • \[ - [ 字符
  • \K - 删除目前匹配的所有文本
  • [^][]* - 除了 [] 之外的零个或多个字符。

关于regex - 下一个单词的 GREP 跟随包含变量的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69048781/

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