Главная > Обработка текста и поиск > tr

tr: Фильтр для преобразования и удаления символов

Команда tr — это фильтр, используемый для преобразования или удаления символов из текста, полученного со стандартного ввода (stdin). Она особенно полезна при использовании с пайпами (|) для обработки вывода других команд.

Обзор

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`, но имеет преимущество в значительно более высокой скорости при выполнении операций преобразования на уровне символов.

Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории