tr

Преобразование символов (POSIX)

Синтаксис:

tr [-cs] [-r имя_файла] строка1 строка2

tr [-cs] [-r имя_файла] строка1

tr -d [-c] [-r имя_файла] строка1

tr -ds [-c] [-r имя_файла] строка1 строка2

Поддерживаемые платформы:

QNX Neutrino, Microsoft Windows

Опции:

-c

Дополнить набор символов, указанный операндом строка1, в соответствии с совокупностью символов с 00 по FF в шестнадцатиричной системе счисления. Символы в строке, определенной операндом строка1, копируются без изменений, а для всех других символов выполняется преобразование.

-d

Удалить все символы, указанные операндом строка1 (или не указанные в значении операнда строка1, если используется опция -dc).

-r имя_файла

(Расширение QNX Neutrino) Преобразовать указанный файл "на месте" (не использовать stdin/stdout).

-s

Сжать все выходные строки, содержащие один или несколько экземпляров отдельного символа, указанного в операнде строка1, до единственного экземпляра соответствующего символа, указанного в операнде строка2.

Если строка2 не указана, утилита tr сжимает экземпляры символов в строке, определенной операндом строка1, до единственного экземпляра данного символа.

строка1

Символьная строка для преобразования (из которой производится преобразование).

строка2

Символьная строка для преобразования (в которую производится преобразование).

Примечание. Если указаны обе опции -d и -s, утилита tr удаляет экземпляры символов, указанных в операнде строка1, и сжимает экземпляры символов, указанных в операнде строка2 (т.е. в этом случае преобразование утилитой tr не выполняется).

Описание:

Утилита tr копирует стандартный поток ввода в стандартный поток вывода с подстановкой или удалением выбранных символов. Преобразование, выполняемое при копировании символов, определяется заданными опциями и операндами строка1 и строка2.

Поведение по умолчанию заключается в замене каждого входного символа, обнаруженного в операнде строка1, символом, находящимся в той же позиции в операнде строка2. При этом символы, не указанные в операнде строка1, копируются без изменений.

Если строка2 короче, чем строка1, то строка2 дополняется до длины операнда строка1 путем дублирования последнего символа, указанного в операнде строка2. Если строка2 явно является строкой нулевой длины, она дополняется символами NUL.

Примечание. Для операндов строка1 и строка2 часто требуется экранирование для предотвращения их интерпретации командным интерпретатором. Для обеспечения механизма экранирования обычно подходят одинарные кавычки.

Соглашения для операндов строка1 и строка2

При определении символов, диапазонов символов, классов символов или сборных элементов в операнде строка1 или строка2, или в обоих этих операндах, следует придерживаться следующих соглашений:

символ

Соответствует указанному символу.

\восьмеричное_значение

Обратная косая черта, за которой следуют 1, 2 или 3 восьмеричных цифры, соответствуют символу с этим закодированным значением.

\символ

Обратная косая черта, за которой следует любой символ, за исключением восьмеричной цифры, соответствуют указанному символу.

c-c

Соответствует диапазону символов между конечными точками диапазона включительно.

[c-c]

(Расширение QNX Neutrino) Метод System V для представления диапазона символов.

[:класс:]

Соответствует всем символам, относящимся к определенному классу символов. Допустимые имена, которые можно указывать в значении переменной класс:

alnum, alpha, blank, cntrl, digit, graph, lower, print, punct, space, upper, xdigit

[.cs.]

Соответствует сборному символу. Символы, состоящие из нескольких символов, следует указывать как сборные символы для обеспечения их отличия от строки, состоящей из аналогичных символов. В этой реализации предусмотрена возможность обработки произвольной строки как сборного символа (расширение QNX Neutrino).

[x*n]

Соответствует n повторяющимся вхождениям символа или символа упорядочения x. Это выражение действительно только в операнде строка2. Если значение n не указано или равно нулю, оно интерпретируется как достаточное для дополнения последовательности на основе значения строка2 до длины последовательности на основе значения строка1. При наличии в значении n начального нуля оно интерпретируется как восьмеричное значение. В противном случае оно интерпретируется как десятичное значение.

Примеры:

Преобразование всех символов нижнего регистра в потоке ввода в соответствующие символы верхнего регистра:

tr '[:lower:]' '[:upper:]' <file1 >file2

или

tr '[a-z]' '[A-Z]' <file1 >file2

Создание списка всех слов из file1 (по одному в строке) в file2, где слову соответствует максимальная строка из букв (восьмеричное значение 012 соответствует коду символа новой строки):

tr -cs '[:alpha:]' '[\012*]'<file1 >file2

Преобразование файла DOS в файл UNIX:

tr -d '\15'<infile >outfile

Статус завершения:

0

Успешно.

1

Возникла ошибка.