Команда tr: замена символов, удаление и сжатие повторов
Преобразуйте ASCII-символы в потоке без изменения исходного файла. Сравните замену набора, удаление символов и сжатие соседних повторений.
Назначение команды
tr работает с символами входного потока. Она не заменяет слова как целые шаблоны и не принимает имя входного файла в качестве отдельного файлового аргумента. Файл подают через stdin, а наборы в аргументах описывают преобразование.
Синтаксис и учебный пример
Форма tr [ОПЦИИ] НАБОР1 [НАБОР2] задаёт отображение или фильтрацию символов. Кавычки защищают набор от разбора оболочкой. В примере меняются только латинские буквы a-z; пробел и перевод строки проходят без изменения.
echo 'moss green' | tr 'a-z' 'A-Z'Проверка: Вывод MOSS GREEN завершается переводом строки.
Опции и варианты записи
Таблица разделяет основные формы записи. Ниже отдельно перечислены пределы виртуальной команды.
| Запись | Смысл |
|---|---|
| -d SET | Удаление символов заданного набора. |
| -s SET | Сжать соседние повторы символов выбранного набора. |
| -ds SET1 SET2 | Сначала удалить SET1, затем сжать оставшиеся повторы из SET2. |
| SET1 SET2 | Отобразить символы первого набора на позиции второго. |
Вывод, ошибки и статус
Данные читаются со стандартного ввода, преобразованный поток идёт в stdout. Полностью удалённый ввод может дать пустой успешный результат. В обычной GNU-замене короткий второй набор дополняется повторением последнего символа; это не взаимно однозначное шифрование и не средство защиты данных.
Как избежать неверного результата
Удаление и сжатие решают разные задачи. tr -s пробел оставляет один пробел в цепочке, а tr -d пробел соединяет соседние слова. Замена a-z не является универсальным переводом регистра для текста всех языков. Перед автоматическим преобразованием определите кодировку и допустимый алфавит.
Реальная система и учебная модель
Симулятор принимает непустые печатные ASCII-наборы, возрастающие диапазоны и -d/-s. Escape-последовательности, классы вроде [:lower:], complement и повторяющие конструкции запрещены. Символы вне выбранных наборов сохраняются; полная модель локалей GNU tr не воспроизводится.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- GNU Coreutils — tr
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Основные понятия общие для Linux. Состав утилит, версии и системные настройки зависят от окружения.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.