Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
05.06.2015
Размер:
36.18 Кб
Скачать

25. Использование фильтров Linux. Назначение фильтров и их использование совместно с другими командами ОС.

Когда программа выполняет операции с вводом и записывает результат в стандартный вывод, она называется фильтром. Одним из наиболее распространенных видов использования фильтров является использование по реогранизованному выводу.

Команда grep

grep сканирует строку вывода через строку поиска по определенным шаблонам. Все строки, содержащие шаблон будут распечатаны на стандартном выводе. Такое поведение может быть отменено путем использования опции -v.

Некоторые примеры: допустим, мы хотим знать, какие файлы в определенной директории были изменены в феврале:

jenny:~> ls -la | grep Feb

Команда grep, как и большинство команд, учитывает регистр. Используйте опцию -i, чтобы не учитывать различие между верхним и нижним регистром. Также доступны многие расширения GNU, например --color, который полезен для подсветки терминов поиска в длинных строках, и --after-context, который печатает число строк после последней совпавшей строки. Вы можете оформить рекурсивных grep, который ищет во всех подкаталогах встречающихся каталогов, с помощью опции -r. Как обычно, опции могут быть объединены.

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

Команда grep.

Формат команды: grep параметр(ы) шаблон имя_файла(ов) .

Команда grep применяется для поиска и отображения данных в указанном ей файле. Команда grep осуществляет поиск в содержимом одного или нескольких файлов на предмет сравнения с регулярным выражением или символьным шаблоном. Если совпадение будет найдено, то grep выведет каждую строку, содержащую совпадение, изменение самого файла при этом не происходит. Команда может также использоваться совместно с программным каналом при перенаправлении потока стандартного вывода другой команды на себя (команда | grep –опции шаблон).

Таблица 1 – Параметры команды grep

*****************************

Параметр

Описание

-i

Задает режим игнорирования регистра, символы верхнего и нижнего регистра считаются идентичными.

-l

Перечисляет только имена файлов, которые содержат найденные строки.

-n

Задает простановку относительного номера к каждой строке в файле.

-v

Меняет условие поиска на обратные для выдачи только тех строк, которые не соответствуют шаблону.

-c

Задает вывод только количества строк, которые содержат шаблон.

-w

Задает поиск выражения как слова.

*****************************

Таблица 2 – Метасимволы в регулярных выражениях

*****************************

Метасимвол

Значение

Пример

Результат

^

Знак начала строки

‘^шаблон’

Выбор всех строк, которые начинаются с «шаблон»

$

Знак конца строки

‘шаблон$’

Выбор всех строк, которые заканчиваются на «шаблон»

.

Любой один символ

‘ш….н’

Выбор строк, которые содержат символ «ш» и через четыре символа символ «н»

[ ]

Соответствует одной позиции в шаблоне

‘[Шш]аблон’

Выбор строк, которые содержат «Шаблон» и «шаблон»

[^]

Соответствует одному символу не в диапазоне поиска

‘[^а-р]аблон’

Выбор строк, которые не содержат символы в диапазоне от «а» до «р» и находящихся перед «аблон»

*

Соответствует любому количеству символов

‘[а-я]*’

Выбор алфавитных символов нижнего регистра

*****************************

Команда egrep.

Команда egrep осуществляет поиск в содержимом одного или нескольких файлов заданного шаблона с использованием расширенного набора метасимволов в регулярных выражениях.

Формат команды: egrep –параметры шаблон имя_файла.

Таблица 3 – Расширенный набор метасимволов команды egrep

*****************************

Метасимвол

Описание

Пример

Результат

+

Соответствует одному или более предшествующих символов

‘[а-я]+аблон’

Выбор одного или более символов нижнего регистра, которые находятся в диапазоне от «а» до «я» и за которыми следует «аблон»

в|п

Соответствует одному из «в» или «п»

‘яблоко|груша’

Выбирается яблоко и/или груша

( | )

Символы групп

‘(1|2)+’

‘(к|р)+орова’

Выбор одного или более появлений. Например, «1» или «2» и «корова» или «ророва»

*****************************

Найти все строки в файле gauss2.plx, которые содержат символ «Y» и затем следующим символом имеют символы «H» или «L». Формат команды будет следующий.

Команда fgrep.

Команда fgrep осуществляет поиск в файле ключевого выражения как фиксированной строки. Ее работа отличается от работы grep и egrep, т.к. она обрабатывает все символы и любые метасимволы регулярных выражений, указанные в командной строке как обычные символы, за исключением знака вопроса (?) и знака доллара ($). Команду fgrep можно использовать для поиска словосочетаний в файлах, содержащих метасимволы. Формат команды такой же, как у grep и egrep: fgrep –параметр(ы) шаблон имя_файла(ов).

Соседние файлы в папке KTNI_Kozlov_otvety