Gostaria de substituir um conjunto de caracteres pelos caracteres correspondentes de outro conjunto, algo como isto:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Traduções / transliterações como esta são a especialidade do trcomando:
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
Infelizmente tr, não suporta a alteração de arquivos no local, como o sedfaz.
Gostaria de usar sedpara não precisar reinventar a roda de arquivos temporários de malabarismo.
tr(corretamente) ignora a recursão nos conjuntos de substituição: echo 'abc' | tr ab bx→ bxc. Uma solução primitiva pode ocultar isso xxcporque reaplicará a tradução a caracteres que já foram traduzidos.
sedcontrário ao GNU trtransliteramos caracteres multi-byte)