3.51111111111Rating 3.50 (2 Votes)

Tr служит для преобразования символов, обычно применяется в работе через пайп обрабатывая входной поток данных. Можно изменять регистр, подставлять, изменять, удалять, вставлять символы, одним словом в некоторых ситуациях просто незаменимый, полезный инструмент.

Параметров (аргументов) не так много:

  • -d : Удаление символов из первого набора
  • -c : Дополняют первый набор символов
  • -s : Замена последовательностей повторяющихся символов в наборах на указанный символ из последнего набора
  • -t : Сокращение первого набора до длины второго набора

В нотации к tr "наборы" это - SET1, SET2 по сути будем считать, что каждый набор это есть набор символов с которыми мы будем манипулировать. Собственно синопсис:

tr [OPTION]... SET1 [SET2]

Изменение регистра

Верхний:

echo "Sys-Admins POWER! Peace!" | tr 'a-z' 'A-Z'
SYS-ADMINS POWER! PEACE!

Нижний:

echo "Sys-Admins POWER! Peace!" | tr 'A-Z' 'a-z'
sys-admins power! peace!

Можно оперировать регистром таким образом:

echo "Sys-Admins POWER! Peace!" | tr [:lower:] [:upper:]

Замена символа

Заменим восклицательный знак, буквой z:

echo "Sys-Admins POWER! Peace!" | tr '!' 'z'
Sys-Admins POWERz Peacez

Удаление символа

Удалим так-же восклицательный знак:

echo "Sys-Admins POWER! Peace!" | tr -d '!'
Sys-Admins POWER Peace

Удаление лишних пробелов

Удаляем двойные пробелы в тексте:

echo "Sys-Admins POWER! Peace!" | tr -s " "
Sys-Admins POWER! Peace!

Замена пробелов

Заменяем пробелы на нижние подчеркивания:

echo "Sys-Admins POWER! Peace!" | tr -s " " "_"
Sys-Admins_POWER!_Peace

Вычленяем номера

Предположим есть файл с именами и номерами телефонов:

cat phone-book.txt 
user1 11111111111
user2 22222222222
user3 33333333333

Собственно номера:

cat phone-book.txt | tr -cd "[:digit:]\n"
111111111111
222222222222
333333333333

Удаление переносов 

Создаем одну строку из многострочного текста:

tr "\n" " " < phone-book.txt 
user1 11111111111 user2 22222222222 user3 33333333333

Главная команда

Ну и собственно самая главная команда:

man tr

 

Добавить комментарий


Защитный код
Обновить

Сейчас 322 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз