Команда tr в Unix/Linux — это универсальная и мощная утилита, которая расшифровывается как «перевести» (translate) или «транслитерировать» (transliterate). Она используется для замены или удаления символов в заданном входном потоке (файле или данных из команды) и получения измененных выходных данных. Команда tr особенно полезна для преобразования или очистки текста.
Что такое команда tr в Unix/Linux?
В среде командной строки Unix /Linux команда tr является универсальным инструментом для перевода или удаления символов. Ее основная цель — преобразовать содержимое файла или стандартного ввода путем замены определенных символов другими или удаления определенных символов. В этой статье мы рассмотрим функциональность команды tr и приведем практические примеры ее использования.
Базовый синтаксис команды tr в Unix/Linux:
Основной синтаксис команды tr следующий:
tr [options] SET1 [SET2]
- SET1: задает набор символов, подлежащих замене или удалению.
- SET2: задает набор символов для замены.
Примеры команды tr в Unix/Linux
Ниже приведены некоторые примеры команды tr в Unix/Linux:
Пример 1: Базовая замена символов
echo "Hello, World!" | tr 'l' 'L'
Эта команда заменяет все вхождения строчной буквы ‘l’ на заглавную букву ‘L». Результатом будет: «HeLLo, WorLd!»
Пример 2: Удаление символов
echo "Remove vowels" | tr -d 'aeiou'
Опция -d удаляет символы из набора входных данных. В этом примере она удаляет все гласные из заданной строки, в результате чего получается «Rmv vwls».
Пример 3: Сжатие повторяющихся символов
echo "слишком много пробелов" | tr -s ' '
Опция -s сжимает повторяющиеся символы в один символ. В этом случае она сжимает последовательные пробелы в один пробел, создавая «слишком много пробелов».
Пример 4: Перевод диапазонов символов
echo "12345" | tr '0-9' 'a-j'
Эта команда преобразует каждую цифру в соответствующую ей строчную букву, в результате чего получается «abcdefghij».
Пример 5: Перевод с набором дополнений
echo "Hello, World!" | tr -c 'aeiou' '*'
Опция -c дополняет указанный набор символов. В этом примере она заменяет все символы, не содержащие гласных, звездочкой, в результате чего получается «eo, old!»
Пример 6: Преобразование верхнего регистра в нижний
echo "Преобразовать В нижний регистр" | tr 'A-Z' 'a-z'
Эта команда преобразует все прописные буквы в строчные, производя «преобразовать в нижний регистр».
Заключение:
Команда tr в Unix/Linux — это мощный и гибкий инструмент для перевода символов и манипулирования ими. Независимо от того, нужно ли вам заменить символы, удалить определенные символы или выполнить более сложные преобразования, команда tr является важным компонентом обработки текста в командной строке. Экспериментирование с различными параметрами и наборами символов позволит вам адаптировать команду tr к вашим конкретным потребностям в преобразовании текста.
Часто задаваемые вопросы, связанные с командой tr в Unix/Linux с примерами
Вот некоторые из часто задаваемых вопросов, связанных с командой tr в Unix/Linux с примером:
Вопрос 1: Какова цель команды tr?
A: Команда tr в Unix/Linux используется для перевода символов и манипулирования ими. Она может заменять или удалять определенные символы, сжимать повторяющиеся символы и выполнять различные другие преобразования при вводе текста.
Вопрос 2: Чем команда tr отличается от sed и awk?
Ответ: Хотя tr специально разработан для перевода и удаления символов, sed (редактор потоков) и awk (инструмент обработки текста) более универсальны и могут выполнять более сложные текстовые манипуляции, включая сопоставление с шаблоном и замену.
Вопрос 3: Можно ли использовать команду tr для файлов?
Ответ: Да, команда tr может использоваться для файлов. Вы можете либо указать файл в качестве аргумента, либо использовать перенаправление ввода (<) для чтения из файла. Например, tr ‘a-z’ ‘A-Z’ < input.txt.
Вопрос 4: Как я могу заменить несколько символов с помощью команды tr?
A: Для замены нескольких символов вы можете указать несколько символов в аргументах SET1 и SET2. Например, tr ‘abc’ ‘123’ заменит ‘a’ на ‘1’, ‘b’ на ‘2’ и ‘c’ на ‘3’.
Вопрос 5: Может ли команда tr обрабатывать символы Unicode?
Ответ: Команда tr в основном предназначена для однобайтовых наборов символов. Хотя ее можно использовать с символами Юникода, она может некорректно обрабатывать многобайтовые символы, а такие инструменты, как iconv, больше подходят для преобразования в Юникод.
Вопрос 6: Как работает опция -s в команде tr?
Ответ: Опция -s сжимает повторяющиеся символы в один символ. Она сжимает последовательные вхождения символов, указанных в SET1, до одного символа в выходных данных.