Linux. Команда tr

16.02.2018

Теги: BashCLILinuxКоманда

Команда служит для замены выбранных символов на другие символы или удаления их. В отличие от большинства других команд, не принимает имен файлов в качестве аргумента. Ввод команды tr осуществляется или со стандартного ввода, или с вывода других программ путем перенаправления.

$ tr [опция] исходные_символы целевые_символы

Любой символ, который содержат исходные символы во входных данных, будет преобазован в соответствующий символ, включенный в целевые символы.

$ cat unix.txt
The Unix operating system was pioneered by Ken
Thompson and Dennis Ritchie at Bell Laboratories
in the late 1960s. One of the primary goals in
the design of the Unix system was to create an
environment that promoted efficient program
development.
$ tr e x < unix.txt
Thx Unix opxrating systxm was pionxxrxd by Kxn
Thompson and Dxnnis Ritchix at Bxll Laboratorixs
in thx latx 1960s. Onx of thx primary goals in
thx dxsign of thx Unix systxm was to crxatx an
xnvironmxnt that promotxd xfficixnt program
dxvxlopmxnt.
$ tr [a-z] [A-Z] < unix.txt
THE UNIX OPERATING SYSTEM WAS PIONEERED BY KEN
THOMPSON AND DENNIS RITCHIE AT BELL LABORATORIES
IN THE LATE 1960S. ONE OF THE PRIMARY GOALS IN
THE DESIGN OF THE UNIX SYSTEM WAS TO CREATE AN
ENVIRONMENT THAT PROMOTED EFFICIENT PROGRAM
DEVELOPMENT.

С помощью параметра -d можно удалить отдельные символы из потока ввода:

$ tr -d ' ' < unix.txt
TheUnixoperatingsystemwaspioneeredbyKen
ThompsonandDennisRitchieatBellLaboratories
inthelate1960s.Oneoftheprimarygoalsin
thedesignoftheUnixsystemwastocreatean
environmentthatpromotedefficientprogram
development.

Указав параметр -s можно заменить последовательность повторяющихся символов на единственный символ:

$ cat spaces.txt
This   is   an   example   of   a
file   that   contains   a   lot
of   blank   spaces.
$ tr -s ' ' ' ' < spaces.txt
This is an example of a
file that contains a lot
of blank spaces.

Команда tr также оперирует с управляющими символами и прочими элементами форматирования:

  • \\ — обратный слэш
  • \f — перевод страницы
  • \n — новая строка
  • \r — возврат каретки
  • \t — горизонтальная табуляция
  • \v — вертикальная табуляция

Например, заменить табуляцию на пробел:

$ tr '\t' ' ' < example.txt

Можно указать класс символов из набора предопределенных символов:

  • [:alnum:] — Символы алфавита в любом регистре и цифры
  • [:alpha:] — Символы алфавита в любом регистре
  • [:blank:] — Пустое множество
  • [:cntrl:] — Управляющие символы
  • [:digit:] — Десятичные цифры
  • [:graph:] — Все символы, которые могут быть напечатаны, кроме пробела
  • [:lower:] — Алфавитные символы в нижнем регистре
  • [:print:] — Все символы, которые могут быть напечатаны
  • [:punct:] — Все символы пунктуации
  • [:space:] — Пробел или табуляция
  • [:upper:] — Алфавитные символы в верхнем регистре
  • [:xdigit:] — Шестнадцатеричные цифры

Перевести все символы нижнего регистра в верхний регистр:

$ tr "[:lower:]" "[:upper:]" < example.txt

Поиск: Bash • CLI • Linux • Команда • tr

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.