Команда tr в Linux
Команда Linux tr используется для преобразования или удаления символов в файле.
Команда tr читает данные из стандартного ввода, преобразует строку и выводит результат в стандартный вывод.
Синтаксис
tr [-cdst][--help][--version][第一字符集][第二字符集] tr [OPTION]…SET1[SET2]
Описание параметра:
- -c, --complement: Инвертировать набор выбранных символов. То есть часть, совпадающая с SET1, остаётся необработанной, а оставшаяся несовпадающая часть преобразуется.
- -d, --delete: Удалить символы в указанном наборе.
- -s, --squeeze-repeats: Сократить последовательные повторяющиеся символы до одного указанного символа.
- -t, --truncate-set1: Обрезать диапазон SET1 так, чтобы его длина равнялась длине SET2.
- --help: Показать информацию об использовании программы.
- --version: Показать информацию о версии самой программы.
Диапазоны наборов символов:
- \\NNN Символ с восьмеричным значением NNN (от 1 до 3 восьмеричных цифр)
- \\ Обратная косая черта
- \a Ctrl-G Звонок
- \b Ctrl-H Возврат на одну позицию
- \f Ctrl-L Перевод страницы
- \n Ctrl-J Новая строка
- \r Ctrl-M Возврат каретки
- \t Ctrl-I Клавиша Tab
- \v Ctrl-X Горизонтальная табуляция
- CHAR1-CHAR2 Диапазон символов от CHAR1 до CHAR2, основанный на порядке ASCII-кодов, может быть только от меньшего к большему, а не от большего к меньшему.
- [CHAR*]: Это настройка, специфичная для SET2, которая повторяет указанный символ, пока он не достигнет той же длины, что и SET1.
- [CHAR*REPEAT] Это также настройка, специфичная для SET2, которая повторяет указанный символ заданное количество раз REPEAT (число REPEAT вычисляется в восьмеричной системе счисления, начиная с 0).
- [:alnum:]: Все буквенные символы и цифры
- [:alpha:]: Все буквенные символы
- [:blank:]: Все горизонтальные пробелы
- [:cntrl:]: Все управляющие символы
- [:digit:]: Все цифры
- [:graph:]: Все печатаемые символы (исключая пробелы)
- [:lower:]: Все строчные буквы
- [:print:]: Все печатаемые символы (включая пробелы)
- [:punct:]: Все знаки пунктуации
- [:space:]: Все горизонтальные и вертикальные пробельные символы
- [:upper:]: Все заглавные буквы
- [:xdigit:]: Все шестнадцатеричные цифры
- [=CHAR=]: Все символы, соответствующие указанному символу (CHAR между знаками равенства обозначает пользовательский символ, который вы можете определить)
Примеры
Чтобы преобразовать все строчные буквы в файле testfile в прописные, используйте следующую команду:
cat testfile |tr a-z A-Z
Содержимое файла testfile следующее:
$ cat testfile #testfile原来的内容 Linux networks are becoming more and more common, but scurity is often an overlooked issue. Unfortunately, in today’s environment all networks are potential hacker targets, fro0m tp-secret military research networks to small home LANs. Linux Network Securty focuses on securing Linux in a networked environment, where the security of the entire network needs to be considered rather than just isolated machines. It uses a mix of theory and practicl techniques to teach administrators how to install and use security applications, as well as how the applcations work and why they are necesary.
После использования команды tr для преобразования регистра получается следующий результат вывода:
$ cat testfile | tr a-z A-Z #转换后的输出 LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS, FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS. LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES. IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.
Преобразование регистра также можно выполнить с помощью параметров [:lower][:upper]. Например, используйте следующую команду:
cat testfile |tr [:lower:] [:upper:]
Результат вывода следующий:
$ cat testfile | tr [:lower:] [:upper:] #转换后的输出 LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS, FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS. LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES. IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.Другие расширения
Справочник команд Linux