转换为%20%26%20

我知道我可以把大写字母翻译成小写字母

echo 'linux' | tr "az" "AZ" 

我将如何翻译或replace%20%26%的事件20。 也许这样的事情

 echo '&' | tr "&" "%20%26%20" 

 sed -i 's/&/%20%26%20/g' inputfile 

将编辑文件到位。

你可以使用shell。

 $ var="&test" $ echo ${var//&/%20%26%20} %20%26%20test 

tr命令不起作用的原因是tr将它视为2个参数,不是任意字符串,而是列表。 tr在字符串中找到“&”; 这是第一个参数中的第一个元素; 它被第二个参数中对应的第一个元素所取代。

从手册页 :

当没有指定-d选项时:

  o Each input character found in the array specified by string1 is replaced by the character in the same rela- tive position in the array specified by string2. When the array specified by string2 is shorter that the one specified by string1, the results are unspecified. 

提供的sedbash解决方案就是你想要的。