用其他字符替换每个字符的出现

时间:2014-03-28 09:17:16

标签: bash

我需要替换字符'。' ' - ''+'和'§'与'D''_''P'' - '按相同的顺序排列,所以我发现你可以像这样用“y”选项使用sed:

echo "$string" | sed 'y/.-+§/D_P-/'

哪个在localhost终端上完美运行。但是当我运行脚本服务器端时,它会向stderr发送错误:

sed: -e expression #1, char 16: strings for `y' command are different lengths

脚本正在运行。我搜索了很长时间,似乎选项'y'不是那么流行,因为我没有找到很多搜索结果。 有趣的是,当我把“ - ”后面的空格放在/ D_P中时,一切正常。我试过甚至逃避一些字符“+”和“。”。不工作。 有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

sed 'y/.-+§/D_P-/'似乎可以替换为tr,如下所示:

echo "$string" | tr '.-+§' 'D_P-'

这适合你吗?