Я хотів би замінити набір символів відповідними символами з іншого набору, приблизно так:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Переклади / транслітерації, як це, є спеціальністю trкоманди:
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
На жаль tr, не підтримує зміну файлів на місці, як sedце робиться.
Мені б хотілося скористатись, sedтому мені не доведеться винаходити колесо тимчасових файлів з тимчасовим режимом.
tr(правильно) ігнорує рекурсію в наборах заміни: echo 'abc' | tr ab bx→ bxc. Примітивне рішення може цього розрізати, xxcоскільки воно повторно застосовує переклад до символів, які вже були переведені.
sedвсупереч GNU trможе транслітерувати багатобайтові символи)