Перевести и% 20% 26% 20 - PullRequest
       2

Перевести и% 20% 26% 20

2 голосов
/ 20 июля 2010

Я знаю, что могу перевести буквы в верхний и нижний регистр на

echo 'linux' | tr "a-z" "A-Z"

, как бы я перевел или заменил вхождение &% 20% 26% 20.Может быть, что-то вроде этого

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

Ответы [ 3 ]

3 голосов
/ 20 июля 2010
sed -i 's/&/%20%26%20/g' inputfile

отредактирует файл на месте.

2 голосов
/ 21 июня 2011

Причина, по которой команда 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.

Предлагаемые решения sed и bash - это то, что вам нужно.

2 голосов
/ 20 июля 2010

вы можете просто использовать оболочку.

$ var="&test"
$ echo ${var//&/%20%26%20}
%20%26%20test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...