С помощью команды tr
Команда tr читает поток ввода и преобразует его (пример 8.41). Она позво- ляет выполнять преобразования, приведенные далее в списке.
r Замена символов в потоке. Задают два набора символов. Символы из пер- вого набора заменяются соответствующими по порядку символами из второго набора.
r При использовании опции -d удаляются символы, указанные в наборе.
r Исключение повторения символов в потоке. Символы, повторы которых должны быть исключены, задаются в наборе — опция -s.
r Замена символов в потоке с последующим устранением их повторов. При этом задаются два набора символов и устанавливается опция -s. Вначале команда tr заменяет символы, а затем устраняет повторения символов из второго набора.
r Удаление символов из потока с последующим устранением повторов. Этот режим требует установки опций -d и -s. Вначале удаляются сим- волы из первого набора, а затем устраняются повторы из второго.
Пример 8.41. Замена символов с помощью tr |
$ echo tarelka | tr a-z A-Z TARELKA
Здесь были заданы два набора символов — все буквы английского алфавита в нижнем регистре, которые заменяются буквами в верхнем регистре.
Удалить символы перевода строки можно командой, показанной в приме- ре 8.42.
Пример 8.42. Удаление символов |
$ ls / | tr -d '\n' binbootdevetchomelibmntoptprocrootsbinswaptmpusrvar
Здесь в качестве входного потока был использован вывод команды ls /, из которого были удалены все символы перевода строк.
Устранение повторов выполняет опция -s (пример 8.43).
Пример 8.43. Устранение повторов |
$ echo root | tr -s o rot
В этом примере были устранены повторения символа о.
Опция -c команды tr позволяет инвертировать смысл задаваемого множест- ва символов, т. е. удалить при использовании -d все, кроме символов, ука- занных в наборе. Например, команда tr –dc 0-9 удалит во входном потоке все, кроме цифр.
С опцией -t команда tr обрезает длину первого набора по длине второго, для того чтобы количество символов в них равнялось.
Можно указать класс символов из набора предопределенных символов
(табл. 8.2).
Таблица 8.2. Предопределенные шаблоны tr
Класс | Символы |
[:alnum:] | Символы алфавита в любом регистре и цифры |
[:alpha:] | Символы алфавита в любом регистре |
[:blank:] | Пустое множество |
[:cntrl:] | Управляющие символы |
[:digit:] | Десятичные цифры |
[:graph:] | Все символы, которые могут быть напечатаны, кроме пробела |
[:lower:] | Алфавитные символы в нижнем регистре |
[:print:] | Все символы, которые могут быть напечатаны |
[:punct:] | Все символы пунктуации |
[:space:] | Пробел или табуляция |
[:upper:] | Алфавитные символы в верхнем регистре |
[:xdigit:] | Шестнадцатеричные цифры |
В примере 8.44 символы в нижнем регистре заменены символами в верхнем регистре.
Пример 8.44. Использование предопределенных шаблонов |
$echo "str" | tr [:lower:] [:upper:] STR
Дата добавления: 2015-06-12; просмотров: 583;