有没有办法将只有一个字符的字符串匹配到sed中的字符“X”中?

有没有办法将只有一个字符的字符串匹配到sed中的字符“X”中?,sed,regex-group,Sed,Regex Group,我想匹配只有一个字符的所有字符串,包括带+或-的字符串,以将其转换为X,但每次运行时,我都会得到以下输出: Xone X Xtwo X Xthree X 下面是我应该使用的文件: Cone A- Ctwo D Cthree C+ 以下是我一直在研究的代码: 代码.sed #!/bin/sed s/[A-D][+-]/X/ s/[A-D]/X/ 期望输出: Cone X Ctwo X Cthree X 使用GNU se

我想匹配只有一个字符的所有字符串,包括带+或-的字符串,以将其转换为X,但每次运行时,我都会得到以下输出:

Xone     X
Xtwo     X
Xthree   X
下面是我应该使用的文件:

Cone      A-
Ctwo      D
Cthree    C+
以下是我一直在研究的代码:

代码.sed

#!/bin/sed
s/[A-D][+-]/X/
s/[A-D]/X/
期望输出:

Cone      X
Ctwo      X
Cthree    X
使用GNU sed,您可以使用

sed-E的/\b[:upper:]\b[+-]?/X/g' 详情:

-E启用POSIX ERE语法 \b-单词边界 [:大写:]-大写字母 \b-单词边界 [+-]? - 可选的+或-。 见:

圆锥体- Ctwo D 三重C+' sed-E的/\b[:upper:]\b[+-]?/X/g'使用GNU sed,您可以使用

sed-E的/\b[:upper:]\b[+-]?/X/g' 详情:

-E启用POSIX ERE语法 \b-单词边界 [:大写:]-大写字母 \b-单词边界 [+-]? - 可选的+或-。 见:

圆锥体- Ctwo D 三重C+'
sed-E's/\b[:upper:][]\b[+-]?/X/g'对于您所展示的样本,请您尝试以下内容,并用GNU awk编写和测试


说明:只需在全局范围内替换大写字母,在其前面加上可选的+或-并在当前行中加上X。

对于所显示的示例,请尝试使用GNU awk编写和测试以下内容

说明:只需全局替换大写字母,将单词边界置于其前面,后跟可选+或-以及当前行中的X

awk '{gsub(/\<[A-Z]\>[-+]?/,"X")} 1' Input_file