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