Me gustaría reemplazar un conjunto de caracteres con los caracteres correspondientes de otro conjunto, algo como esto:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Traducciones / transliteraciones como esta son la especialidad del trcomando:
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
Lamentablemente trno admite el cambio de archivos en el lugar como lo sedhace.
Me gustaría usar sedpara no tener que reinventar la rueda de malabares con los archivos temporales.
tr(correctamente) ignora la recursividad en los conjuntos de reemplazo: echo 'abc' | tr ab bx→ bxc. Una solución primitiva podría hacerlo xxcporque vuelve a aplicar la traducción a los caracteres que ya se han traducido.
sedcontrario a GNU trpuede transliterar caracteres de varios bytes)