Saya ingin mengganti satu set karakter dengan karakter yang sesuai dari set lain, sesuatu seperti ini:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Terjemahan / transliterasi seperti ini adalah spesialisasi dari tr
perintah:
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
Sayangnya tr
tidak mendukung mengubah file di tempat seperti sed
halnya.
Saya ingin menggunakan sed
jadi saya tidak perlu menemukan kembali roda juggling file temp.
tr
(dengan benar) mengabaikan rekursi dalam set pengganti: echo 'abc' | tr ab bx
→ bxc
. Solusi primitif mungkin memotong itu xxc
karena menerapkan kembali terjemahan ke karakter yang telah diterjemahkan.
sed
bertentangan dengan GNU tr
dapat transliterasi karakter multi-byte)