用 [AJ] 替换 [0-9] 无法使用 sed

用 [AJ] 替换 [0-9] 无法使用 sed

我正在编写一个命令,用于在 sed 中将所有数字 0-9 替换为其对应的字母。我知道我做错了什么,但 sed 并没有将替换正则表达式解释为字符串文字以外的任何东西。

我使用的命令是sed -r 's/[0-9]/[A-J]/g' log > ~/output.txt

对我来说这似乎很简单,但我被困了大约一个小时。我收到的输出只是用字符串“[AJ]”替换了 0-9

答案1

作为替代,只有匹配(左侧)是正则表达式。替代品或多或少只是一个文字字符串(带有一些反斜杠扩展)——它是不是正则表达式

您想要音译,而不是替换,因此替换sy

echo 34031445 | sed 'y/0123456789/ABCDEFGHIJ/'

sed 不能使用范围y,但 Perl 可以:

echo 34031445 | perl -pe 'y/0-9/A-J/'

或者直接使用tr

echo 34031445 | tr 0-9 A-J

相关内容