Tr

trUNIX-утиліта для перетворення символів. Утиліта 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

Посилання