утилита tr считывает текст из стандартного потока ввода, находит символы в соответствии с выражением 1 и заменяет их в соответствии с выражением 2
ну в общем все что нужно в одном
Использование: tr [КЛЮЧ]... НАБОР1 [НАБОР2]
Преобразует, уплотняет и/или удаляет знаки со стандартного ввода и
печатает на стандартный вывод.
-c, -C, --complement сначала получить дополнение ТАБЛИЦЫ1
-d, --delete удалять знаки из ТАБЛИЦЫ1, не преобразовывать
-s, --squeeze-repeats замещать последовательности повторяющихся знаков из
перечисленных в ТАБЛИЦЕ1 на единственный такой знак
-t, --truncate-set1 сначала сократить ТАБЛИЦУ1 до размера ТАБЛИЦЫ2
--help показать эту справку и выйти
--version показать информацию о версии и выйти
ТАБЛИЦы задаются как знаковые строки. Во многих случаях знаки представляют
сами себя. Воспринимаются следующие последовательности:
\ННН знак с восьмеричным кодом ННН (от 1 до 3 цифр)
\\ обратная косая черта
\a звуковой сигнал
\b забой
\f перевод страницы
\n новая строка
\r возврат каретки
\t горизонтальная табуляция
\v вертикальная табуляция
ЗНАК1-ЗНАК2 все знаки от ЗНАК1 до ЗНАК2 в порядке возрастания
[ЗНАК*] ЗНАК заполняет ТАБЛИЦУ2 до длины ТАБЛИЦЫ1
[ЗНАК*ЧИСЛО] заданное ЧИСЛО одинаковых ЗНАКОВ; ЧИСЛО восьмеричное, если
начинается с 0
[:alnum:] все буквы и цифры
[:alpha:] все буквы
[:blank:] все горизонтальные пробельные знаки
[:cntrl:] все управляющие знаки
[:digit:] все цифры
[:graph:] все печатные знаки, исключая пробел
[:lower:] все строчные буквы
[:print:] все печатные знаки, включая пробел
[:punct:] все знаки препинания
[:space:] все вертикальные или горизонтальные пробельные знаки
[:upper:] все заглавные буквы
[:xdigit:] все шестнадцатеричные цифры
[=ЗНАК=] все знаки, эквивалентные ЗНАКУ
Если заданы обе ТАБЛИЦы, и не указан -d, производится преобразование. Ключ -t
может быть использован только при преобразовании. ТАБЛИЦА2 расширяется до
размера ТАБЛИЦЫ1 путем повторения последнего знака. Избыточные знаки
ТАБЛИЦЫ2 игнорируются. Только [:lower:] и [:upper:] гарантировано сортированы в
порядке возрастания, их можно использовать только парно, для обозначения смены
регистра. Если не запрошено ни преобразование, ни удаление, ключ -s использует
ТАБЛИЦУ1, иначе при уплотнении используется ТАБЛИЦА2. Уплотнение производится
после преобразования или удаления.