这应该是直截了当的,但我无法弄清楚。如果我想使用 sed 用 C 替换 A 或 B,代码可能是:
$ echo AAXXAAYYBB | sed 's/[AB]/C/g'
CCXXCCYYCC
Run Code Online (Sandbox Code Playgroud)
这导致所有 A 和 B 都转换为 C。
我想要做的是用两个(或可能更多)变量之一替换“A”:
输入:
AAXXAAYYBB
Run Code Online (Sandbox Code Playgroud)
代码:
sed 's/A/[BC]/g'
Run Code Online (Sandbox Code Playgroud)
输出(其中 B 或 C 的替换是随机的):
BCXXCBYYBB
Run Code Online (Sandbox Code Playgroud)
但是此代码只会将 A 更改为...
$ echo AAXXAAYYBB | sed 's/A/[BC]/g'
[BC][BC]XX[BC][BC]YYBB
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我尽量避免在这里使用 PERL。有谁知道如何解决这个问题?