Chciałbym zastąpić zestaw znaków odpowiednimi znakami z innego zestawu, coś takiego:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Tłumaczenia / transliteracje takie jak ta są specjalnością trpolecenia:
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
Niestety trnie obsługuje zmiany plików w miejscu, tak jak sedrobi.
Chciałbym użyć, sedwięc nie muszę ponownie wymyślać koła plików tymczasowych żonglerki.
tr(poprawnie) ignoruje rekurencję w zestawach zastępczych: echo 'abc' | tr ab bx→ bxc. Prymitywne rozwiązanie może to zaszkodzić, xxcponieważ ponownie stosuje tłumaczenie do znaków, które już zostały przetłumaczone.
sedprzeciwieństwie do GNU trpotrafi transliterować znaki wielobajtowe)