我在文件中有以下字符串:
?*TEST?*
?+
现在我希望用星号?*
替换*
。更换后的文件应该是这样的:
*TEST*
?+
我测试了几种方法,但找不到答案。问题是每个sed命令也用?*
替换**
或什么都没有。
其中一个应该匹配。在任何情况下,?+
保持完整。
$ echo "$a"
*?TEST?*
?+
*?TEST?*
?+
$ echo "$a" |sed 's/[?][*]/*/g'
*?TEST*
?+
*?TEST*
?+
$ echo "$a" |sed -E 's/([*])([?])/\2\1/g'
?*TEST?*
?+
?*TEST?*
?+
$ echo "$a" |sed 's/[?][*]/***???/g'
*?TEST***???
?+
*?TEST***???
?+