我有一个看起来像这样的字符串:
STRING="$PATTERN_some-stuff_$PATTERN_some-other_stuff"
我想$PATTERN
仅使用 Bash 内置命令来计算其中的出现次数。
到目前为止,我发现的更直接的方法是从字符串中仅提取匹配的字符串,$PATTERN
然后计算$PATTERN
新创建的字符串中出现的次数,以这种方式进行:
expr length "${STRING//[^$PATTERN]}" / ${#PATTERN}
但它只适用$PATTERN
于单个字符。我尝试使用语法${STRING//!(PATTERN)}"
,如果我理解 Bash 手册,它只会$PATTERN
在排除其余部分时匹配$STRING
,但它实际上什么也不输出。那么,我哪里错了?