tr

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

Синтаксис:

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

Опции:

-c
Дополнить набор символов, указанный операндом строка1, в соответствии с совокупностью символов с 00 по FF в шестнадцатиричной системе счисления. Символы в строке, определенной операндом строка1, копируются без изменений, а для всех других символов выполняется преобразование.
-d
Удалить все символы, указанные операндом строка1 (или не указанные в значении операнда строка1, если используется опция -dc).
-r имя_файла
(Расширение ЗОСРВ «Нейтрино») Преобразовать указанный файл "на месте" (не использовать stdin/ stdout).
-s
Сжать все выходные строки, содержащие один или несколько экземпляров отдельного символа, указанного в операнде строка1, до единственного экземпляра соответствующего символа, указанного в операнде строка2.

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


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

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

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

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

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


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

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

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

символ
Соответствует указанному символу.
\восьмеричное_значение
Обратная косая черта, за которой следуют 1, 2 или 3 восьмеричных цифры, соответствуют символу с этим закодированным значением.
\символ
Обратная косая черта, за которой следует любой символ, за исключением восьмеричной цифры, соответствуют указанному символу.
c-c
Соответствует диапазону символов между конечными точками диапазона включительно.
[c-c]
(Расширение ЗОСРВ «Нейтрино») Метод System V для представления диапазона символов.
[:класс:]
Соответствует всем символам, относящимся к определенному классу символов. Допустимые имена, которые можно указывать в значении переменной класс:
alnum
alpha
blank
cntrl
digit
graph
lower
print
punct
space
upper
xdigit
[.cs.]
(Расширение ЗОСРВ «Нейтрино») Соответствует сборному символу. Символы, состоящие из нескольких символов, следует указывать как сборные символы для обеспечения их отличия от строки, состоящей из аналогичных символов. В этой реализации предусмотрена возможность обработки произвольной строки как сборного символа.
[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
Возникла ошибка.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», POSIX

Тематические ссылки:

gawk, sed, textto




Предыдущий раздел: Утилиты