小编Ant*_*y D的帖子

使用 sed 将“A”替换为“B”或“C”

这应该是直截了当的,但我无法弄清楚。如果我想使用 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。有谁知道如何解决这个问题?

sed random

4
推荐指数
2
解决办法
2093
查看次数

标签 统计

random ×1

sed ×1