tr — UNIX-утиліта для перетворення символів. Утиліта tr копіює стандартний вхідний потік в стандартний вихідний, підставляючи або видаляючи деякі символи. Задані опції і операнди рядок1 і рядок2 керують перетворенням.
Використання
tr [-c | -C] [-s] рядок1 рядок2
tr -s [-c | -C] рядок1
tr -d [-c | -C] рядок1
tr -ds [-c | -C] рядок1 рядок2
Підтримуються такі опції:
- -c, -C
- Доповнює набір символів, що задається рядком 1.
- -d
- Видаляє всі входження символів, вказаних в рядку 1.
- -s
- Замінює входження символу, що повторюються, одним символом.
Приклади
Найпростіше використання, без ключів опцій. Наступна команда переводить всі символи нижнього регістра прочитані з файлу file1 у верхній регістр і виводить результат в стандартний вихідний потік:
tr "[:lower:]" "[:upper:]" < file1
Ключ -d
видаляє всі входження вказаних далі символів. В цьому прикладі з вхідного файлу буде видалено символи '\r' (CR, англ. carriage return), результат буде записано у файл file2. Це типова операція при перекодуваннях текстових файлів в сумісний з UNIX-системами формат символу нового рядка:
tr -d '\r' < file1 > file2
Ключ -s
використовується, щоб стискати послідовності ідентичних суміжних символів у своєму виведенні в один. Дана команда замінює у вхідному потоці послідовності з одного або кількох символів нового рядка на один такий символ. Оскільки перенаправлень у дискові файли нема, то результат виводиться у стандартний вихідний потік:
tr -s '\n'
Ключ -c
вказує використати доповнення (англ. complement) до вказаної множини символів. Тобто буде опрацьовано всі символи які не вказані явно в наступному параметрі. Цей приклад, таким чином, видалить з потоку всі символи окрім літер та цифр:
tr -cd '[:alnum:]'
В цьому прикладі створюється список всіх слів у файлі file1, який поміщається у файл file2 по одному слову в рядку:
tr -cs "[:alpha:]" "[\n*]" < file1 > file2
В даному прикладі використовується клас еквівалентності для виявлення акцентованих варіантів базового символу e у файлі file1, з яких віддаляються діактричні знаки, і результат записується у файл file2:
tr "[=e=]" e < file1 > file2
Посилання