Karakter kümesini başka bir kümedeki karşılık gelen karakterlerle değiştirmek istiyorum, şöyle bir şey:
original set: ots
"target" set: u.x
foobartest → fuubar.ex.
Bunun gibi çeviriler / çeviriler tr
komutun uzmanlığıdır :
$ echo 'foobartest' | tr 'ots' 'u.x'
fuubar.ex.
Maalesef tr
, yerinde olduğu gibi dosyaları değiştirmeyi desteklemiyor sed
.
Kullanmak istiyorum, sed
bu yüzden geçici dosyaları hokkabazlık tekerleğini yeniden icat etmek zorunda değilim.
tr
(doğru) değiştirme kümelerindeki özyinelemeyi yok sayar: echo 'abc' | tr ab bx
→ bxc
. İlkel bir çözüm xxc
, daha önce çevrilmiş olan karakterlere çeviriyi yeniden uyguladığı için bunu kasaplayabilir.
sed
aksine GNU tr
çok baytlı karakterleri translitüre edebilir)