tr

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

tr (от англ. translate или transliterate) — UNIX-утилита для преобразования символов. Утилита tr копирует стандартный входной поток в стандартный выходной, подставляя или удаляя некоторые символы. Заданные опции и операнды строка1 и строка2 управляют происходящим преобразованием по ходу копирования отдельных символов и последовательностей символов.

Использование[править | править вики-текст]

  • tr [-c | -C] [-s] строка1 строка2
  • tr -s [-c | -C] строка1
  • tr -d [-c | -C] строка1
  • tr -ds [-c | -C] строка1 строка2

Поддерживаются следующие опции:

-d
Удаляет все вхождения символов, указанных в строке 1. При этом преобразование не производится.
-s
Замещает каждую последовательность повторяющихся символов, перечисленных в последней указанной строке, на единственный такой символ.
-c, -C
Дополняет набор символов, задаваемый строкой 1.
-t
Сначала сократить строку 1 до размера строки 2. Если эта опция не указана, то размер строки 2 подгоняется под размер строки 1: если она больше, то обрезается, если меньше, то дополняется последним символом.

Примеры[править | править вики-текст]

Замена a на j, b на k, c на m, d на n в стандартном входе.

tr 'abcd' 'jkmn'

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

tr 'a-d' 'jkmn'

В этом примере создается список всех слов в файле file1, который помещается в файл file2 по одному слову в строке:

tr -cs "[:alpha:]" "[\n*]" < file1 > file2

Следующая команда переводит все символы нижнего регистра в файле file1 в верхний регистр и записывает результат в стандартный выходной поток:

tr "[:lower:]" "[:upper:]" < file1

В этом примере используется класс эквивалентности для выявления акцентированных вариантов базового символа e в файле file1, из которых удаляются диакритические знаки, и результат записывается в файл file2:

tr "[=e=]" e < file1 > file2

Извлечь строчные буквы английского алфавита из псевдогенератора случайных чисел /dev/urandom:

cat /dev/urandom | tr -dc "a-z"

Сгенерировать 10 паролей длиной 20 символов, состоящих из заглавных и строчных буквы английского алфавита и спец. символов:

cat /dev/urandom | tr -dc 'A-Za-z0-9!@#$%^&*()-_=+?;:' | fold -w 20 | head -n 10

Ссылки[править | править вики-текст]

  • tr(1) — страница справки man по пользовательским командам GNU/Linux  (англ.) (см. GNU Coreutils)
  • tr(1) — страница справки man по пользовательским командам OpenBSD  (англ.)
  • tr(1) — страница справки man по пользовательским командам FreeBSD  (англ.)