tr
processa caracteres individuais, não sequências de caracteres. Seus argumentos são conjuntos de caracteres, constituindo um mapeamento um-para-um:
tr aab xyz
significa "substitua a
por x
, a
por y
, b
por z
". Pode ajudar a ver os dois conjuntos um acima do outro:
tr aab \
xyz
Se o segundo conjunto for menor que o primeiro, ele será estendido pela repetição do último caractere (por padrão). Os conjuntos são lidos em ordem, não aplicados em ordem; Portanto, a substituição " a
→ y
" acima apaga a substituição " a
→ x
" definida anteriormente.