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