тр (Unix)

Утилита форматирования текста Unix
тр
Оригинальный автор(ы)Дуглас Макилрой
( AT&T Bell Laboratories )
Разработчик(и)Различные разработчики открытого и коммерческого ПО
Первоначальный выпускНоябрь 1973 г .; 50 лет назад ( 1973-11 )
Репозиторий
  • openbsd.su/src/usr.bin/tr/
Написано вС
Операционная системаUnix , Unix-подобный , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i
ПлатформаКроссплатформенный
ТипКоманда
Лицензияcoreutils : GPLv3+,
план 9: лицензия MIT

trкоманда в Unix , Plan 9 , Inferno и Unix-подобных операционных системах. Это сокращение от translate или transliterate , указывающее на ее операцию замены или удаления определенных символов во входном наборе данных.

Обзор

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

tr 'abcd' 'jkmn'

отображает все символы a в j , b в k , c в m и d в n .

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

tr 'ad' 'jkmn'

В POSIX -совместимых версиях trнабор, представленный диапазоном символов, зависит от порядка сортировки локали , поэтому безопаснее избегать диапазонов символов в скриптах, которые могут быть выполнены в локали, отличной от той, в которой они были написаны. Диапазоны часто можно заменить наборами символов POSIX, такими как [:alpha:] .

Флаг sзаставляет trсжимать последовательности одинаковых смежных символов в своем выводе в один токен. Например,

тр -с '\n'

заменяет последовательности из одного или нескольких символов новой строки одним символом новой строки.

Флаг dприводит trк удалению всех токенов указанного набора символов из его ввода. В этом случае используется только один аргумент набора символов. Следующая команда удаляет символы возврата каретки.

тр -д '\р'

Флаг cуказывает на дополнение первого набора символов. Вызов

tr -cd '[:alnum:]'

поэтому удаляет все символы, не являющиеся буквами и цифрами.

Реализации

Первоначальная версия trбыла написана Дугласом Макилроем и была представлена ​​в версии 4 Unix . [1]

Версия, trвходящая в состав GNU coreutils , была написана Джимом Мейерингом. [2] Команда доступна в виде отдельного пакета для Microsoft Windows как часть коллекции UnxUtils собственных портов Win32 распространенных утилит GNU Unix-like. [3] Она также доступна в оболочке OS-9 . [4] Команда также является частью ASCII 's MSX-DOS2 Tools для MSX-DOS версии 2. [5] Команда tr также была перенесена в операционную систему IBM i . [6]tr

Большинство версий tr, включая GNU trи классический Unix tr, работают с однобайтовыми символами и несовместимы с Unicode . Исключением является реализация Heirloom Toolchest , которая обеспечивает базовую поддержку Unicode.

Ruby и Perl также имеют внутренний оператор tr , который работает аналогично. [7] [8] Команда Tcl string map является более общей, поскольку она сопоставляет строки со строками, в то время как tr сопоставляет символы с символами. [9]

Смотрите также

Ссылки

  1. ^ Макилрой, МД (1987). Исследовательский ридер Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). Вычислительная наука. AT&T Bell Laboratories. 139.
  2. ^ "Tr(1): Перевод/Удаление символа - страница руководства Linux".
  3. ^ "Нативные порты Win32 некоторых утилит GNU". unxutils.sourceforge.net .
  4. ^ Пол С. Даян (1992). Гуру OS-9 - 1: Факты . Galactic Industrial Limited. ISBN 0-9519228-0-7.
  5. ^ Руководство пользователя инструментов MSX-DOS2 от ASCII Corporation
  6. ^ IBM . "IBM System i Version 7.2 Programming Qshell" (PDF) . IBM . Получено 2020-09-05 .
  7. ^ "tr (String) - APIdock". APIdock . Получено 12 августа 2015 г. .
  8. ^ "tr - perldoc.perl.org". perldoc.perl.org . Получено 12 августа 2015 г. .
  9. ^ "Tcl Built-In Commands - string manual page" . Получено 12 августа 2015 г. .
Взято с "https://en.wikipedia.org/w/index.php?title=Tr_(Unix)&oldid=1167045460"