BASH-捕获固定变量和2个可能变量之间的字符串
获取介于“aa=”和%或空之间的内容BASH-捕获固定变量和2个可能变量之间的字符串,bash,shell,sed,grep,Bash,Shell,Sed,Grep,获取介于“aa=”和%或空之间的内容 string = "aa=value%bb" string2 = "bb=%aa=value" 规则必须对两个字符串都起作用,才能获得“aa=”的值 如果可能的话,我想要一个BASH语言解决方案。使用以下方法: result=$(echo "$string" | grep -o 'aa=[^%]*') result=${result:3} # remove aa= [^%]*匹配任何不包含%的字符序列,因此它将在到达%或字符串结尾时停止$(结果:3}扩展
string = "aa=value%bb"
string2 = "bb=%aa=value"
规则必须对两个字符串都起作用,才能获得“aa=”的值
如果可能的话,我想要一个BASH语言解决方案。使用以下方法:
result=$(echo "$string" | grep -o 'aa=[^%]*')
result=${result:3} # remove aa=
[^%]*
匹配任何不包含%
的字符序列,因此它将在到达%
或字符串结尾时停止$(结果:3}
扩展到从字符3开始的子字符串,从开头删除aa=
。我无法通过google搜索找到BASH语言示例。它似乎有点太具体了。(由于两个固定变量)如何排除“aa=”?(从grep结果中)如果您有一个带有PCRE的grep
版本,您可以使用lookback来排除它。我已经演示了如何使用bash参数展开运算符删除它,以获得从字符3开始的子字符串。