Yanıtlar:
GNU sisteminde sed
, yerel ayarınız çok baytlı karakterler kullanıyorsa ( jimmij'nin önerdiği gibi ) kullanmanız veya benzemeniz gerekir, çünkü GNU tr
yalnızca bayt başına bir karaktere başvurabilir. Bir ASCII yerel ayarında, aşağıdaki gibi tüm kopyaları kaldırabilirsiniz tr
:
LC_ALL=C tr -s '\0-\255' <input
Yani...
echo Thhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\0-\255'
... baskılar ...
This is my name
Ayrıca, aralıklara göre hedeflerinize başvurarak seçici olarak da yapabilirsiniz:
echo TThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\101-\132'
...veya...
echo TTTThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '[:upper:]'
... hangisinin aynı şey olduğu ve her ikisinin de yazdırdığı:
Thhiisss iisss mmyyy nameeee
... veya kullanım [:punct:]
, [:digit:]
, [:lower:]
, [:alpha:]
veya ne istiyorsunuz. Ayrıca seçimi w / -c
so ...
echo 'TTTThhiisss iisss mmyyy nameeee' |
LC_ALL=C tr -cs '[:upper:]'
... baskılar ...
TTTThis is my name