НАЗВАНИЕ
tr - преобразование символов
СИНТАКСИС
tr [-c] [-d] [-s] [цепочка_1 [цепочка_2]]
ОПИСАНИЕ
Команда tr копирует стандартный ввод на стандартный вывод с заменой либо удалением выбранных символов. Введенные символы, найденные в цепочке_1, заменяются на
соответствующие символы из цепочки_2. Допускаются любые
комбинации опций -cds:
-c | Цепочка_1 заменяется ее дополнением до множества ASCII-символов с восьмеричными кодами от 001 до 377. |
---|---|
-d | Все входные символы, принадлежащие цепочке_1, будут удалены. |
-s | Последовательности одинаковых входных символов, принадлежащих цепочке_2, сжимаются до одного. |
Чтобы помещать в цепочки отрезки алфавита и повторяющиеся символы, можно использовать следующие сокращения:
[c1-c2] | Обозначает цепочку символов, коды ASCII которых принадлежат отрезку от кода символа c1 до c2. |
---|---|
[c*n] | Обозначает символ c, повторенный n раз. Если первая цифра в n есть 0, n рассматривается как восьмеричное число; иначе - как десятичное. Нулевое или отсутствующее n воспринимается как "очень много"; эта возможность полезна при дополнении цепочки_2 до длины цепочки_1. |
Управляющий символ \ можно использовать, как и в языке shell, чтобы отменить трактовку символа в цепочке-аргументе как специального. Кроме того, \, за которым идут одна, две или три восьмеричные цифры, обозначает символ, код ASCII которого выражается этими цифрами.
ПРИМЕР
Следующая команда помещает список всех слов из файла
f1, по одному на строку, в файл f2. Под словом понимается максимальная последовательность букв. Цепочки-аргументы берутся в кавычки, чтобы shell не интерпретировал специальные символы; 012 - ASCII-код перевода строки.
tr -cs "[A-Z][a-z]" "[\012*]"f2
СМ. ТАКЖЕ
ed(1), sh(1).
ascii(5) в Справочнике программиста.
СЮРПРИЗЫ
Символ ASCII NUL (код 000) не может входить ни в цепочку_1, ни в цепочку_2; всегда удаляется из ввода.