我正在尝试在 bash 中制作一个单字母替换解码器:我有一组字符形成替代字母表,例如
real alphabet -> ABCDE ...
my alphabet -> DGHJK ...
我想要 sed (或其他工具,但我认为 sed 可以处理它)将“A”替换为“D”,将“B”替换为“G”等等。是否可以在不使用 sed 中的“-e”参数(并键入所有字母表)的情况下执行此类替换?
答案1
而不是sed
使用tr
:
tr 'A-Z' 'DGHJK...' < input
答案2
尝试:
$ echo ABCDBAD | sed 'y/ABCD/DEFG/'
DEFGEDG
y/string1/string2/
原因sed
将所有出现的字符替换string1
为 中的相应字符string2
。