Команда tr в Unix/Linux с примерами

Команда 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, до одного символа в выходных данных.