Відповіді:
У системі GNU вам потрібно використовувати sedабо подібні, якщо ваш локальний код використовує багатобайтові символи ( як пропонує jimmij ), оскільки GNU trможе посилатися лише на символ на байт. З локальної мови ASCII ви можете видалити всі дублікати w / trlike:
LC_ALL=C tr -s '\0-\255' <input
Так...
echo Thhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\0-\255'
... відбитки ...
This is my name
Ви також можете це робити вибірково, посилаючись на цілі за діапазоном:
echo TThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '\101-\132'
... або ...
echo TTTThhiisss iisss mmyyy nameeee|
LC_ALL=C tr -s '[:upper:]'
... які виходять одним і тим же і які друкують:
Thhiisss iisss mmyyy nameeee
... або використання [:punct:], [:digit:], [:lower:], [:alpha:]або все , що ви хотіли б. Ви також можете заперечувати вибір із -cтаким чином ...
echo 'TTTThhiisss iisss mmyyy nameeee' |
LC_ALL=C tr -cs '[:upper:]'
... відбитки ...
TTTThis is my name