Обзор
tr (translate) – как следует из названия, эта команда "переводит" или "заменяет" символы. Например, она специализируется на простых преобразованиях на уровне символов, таких как изменение строчных букв на заглавные, замена определенных символов на другие или замена символов новой строки на пробелы. В отличие от `sed` или `awk`, которые поддерживают сложное сопоставление по шаблону на уровне строк, `tr` очень быстр и эффективен для обработки на уровне символов.
Ключевые особенности
Основные особенности команды tr:
- Преобразует или удаляет текст на уровне символов.
- Получает данные только через стандартный ввод (stdin).
- Не использует регулярные выражения.
- Широко используется с пайпами (`|`) для обработки вывода других команд.
Базовый синтаксис tr
Команда tr по умолчанию принимает два набора символов в качестве аргументов.
- `tr 'set1' 'set2'`: Преобразует символы из `set1` в символы из `set2` по принципу 1:1.
- `tr -d 'set1'`: Удаляет все символы, находящиеся в `set1`.
Основные опции
Часто используемые опции команды tr сгруппированы по назначению.
1) Функциональные опции
2) Специальные символы и наборы
Сгенерированная команда:
Комбинируйте команды.
Описание:
`tr` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Изучите функциональность команды tr на различных примерах использования.
Преобразование строчных букв в заглавные
echo 'hello world' | tr '[:lower:]' '[:upper:]'
Преобразует строчные буквы, полученные со стандартного ввода, в заглавные и выводит их.
Удаление определенных символов
echo 'hello world' | tr -d ' '
Удаляет все пробелы (` `) из текста.
Преобразование новой строки в пробел
cat file.txt | tr '\n' ' '
Преобразует символы новой строки (`\n`) в содержимом файла в пробелы (` `) и выводит все одной строкой.
Сжатие повторяющихся пробелов
echo 'hello world' | tr -s ' '
Сжимает последовательно повторяющиеся пробелы в один пробел. Опция `-s` выполняет функцию сжатия повторяющихся символов.
Преобразование заглавных букв в строчные
echo 'HELLO WORLD' | tr 'A-Z' 'a-z'
Преобразует заглавные буквы, полученные со стандартного ввода, в строчные и выводит их.
Советы и примечания
Собраны важные моменты, на которые следует обратить внимание при использовании команды tr.
Советы
- tr не принимает имена файлов напрямую в качестве аргументов. Текст всегда должен передаваться через стандартный ввод с помощью таких команд, как `cat` или `echo`.
- При передаче строк в качестве аргументов рекомендуется использовать одинарные кавычки (`'`), чтобы оболочка не интерпретировала специальные символы.
- `tr` проще по функциональности, чем `sed` или `awk`, но имеет преимущество в значительно более высокой скорости при выполнении операций преобразования на уровне символов.