Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Лабы1 / lab_m1_vt_vt_os_230100.62_niy06.doc
Скачиваний:
23
Добавлен:
18.02.2017
Размер:
449.02 Кб
Скачать

Команда grep и fgrep.

Назначение: фильтры выполняют поиск заданного образца в содержимом файлов. Они информируют пользователя о том, в каком файле этот образец найден, и выводит на экран все строки, в которых он есть. Перед каждой строкой ставится имя файла, которому она относится. Фильтр grep может искать только один образец, а fgrep два и более одновременно. Фильтр grep использует аргументы двух типов. Первый аргумент – это искомый образец, а второй – список имен файлов, в которых указанный образец следует искать. Имена файлов вводятся в командной строке после образца.

Фильтр fgrep не обрабатывает специальные символы, а ищет только явно заданные образцы. Образцы можно вводить или, задавая опцию f читать их из файла. В командной строке, как и в файле, образцы должны отделяться друг от друга символом новой строки. Весь список образцов заключается в двойные кавычки, а каждый символ новой строки предваряется новой косой чертой.

Синтаксис:

$ grep образец список_имен_файлов

$ fgrep ”образец1

\образец 2” имя _файла

Опции:

grep [-i,-c,-l,-n,-v]

- I игнорирует регистр - с выводит только число, соответствующее количеству строк с заданным образцом

- l выводит только имена файлов, содержащих указанный образец

- n выводит номера строк, содержащих указанный образец и текст этих строк

- v выводит строки, которые не содержат указанного образца

Примеры:

$ grep stream preface

consist of a stream of

$ grep data preface intro

preface: data in the file

intro: new data

$ fgrep “editor\

create” preface

characters. An editor can

be used to create such

Регулярные выражения

Назначение: Регулярные выражения позволяют задавать возможные варианты образца, а также образцы, расположенные в различных местах текста. Можно искать в тексте образцы, имеющие разные начальные и конечные буквы, а также указывать на текст, стоящий в начале или в конце строки. К специальным символам регулярных выражений относятся ^, $, *, точка и [ ]. Знаки ^ и $ обозначают начало и конец строки. Звездочка соответствует повторяющимся символам, точка – одиночным символам, а квадратные скобки – группам символов.

Примеры:

Для того чтобы обозначить образец, стоящий в начале строки, необходимо непосредственно перед образцом поставить знак ^. Он делает начало строки частью искомого образца.

^ consistens

consistens of a stream

Для образца стоящего в конце строки:

such$

be used to create such

Точка – это специальный символ, который обозначает один какой-либо символ. Так по образцу b.d будут найдены комбинации, состоящие из трех букв. Первой будет буква b, третьей d, а второй любая буква. Если указать просто b. , без d, то будут найдены все комбинации, начинающиеся с буквы b и состоящие минимум из одного символа.

Специальный символ * обозначает несколько (ноль и более) следующих друг за другом экземпляров обозначенного им символа. Этот символ ставиться в образце перед звездочкой. Звездочку можно рассматривать как оператор, который в качестве операнда берет стоящий перед ним символ. Этот специальный символ обеспечивает поиск повторяющихся экземпляров заданного символа. Т. е. если задать с*, то будут найдены: с сс ссс ссс и т.д.

Образец .* совпадает с любым символом в строке. Практически это обозначает всю строку целиком. Если у вас есть контекст для .* , то можно обозначат различные сегменты строки. Образец поставленный перед специальными символами .* указывает на часть строки, начиная с экземпляра образца. Образец, поставленный перед этими специальными символами, обозначает начало строки до него. Символы .*, стоящие между образцами, указывают на весь промежуточный текст, находящийся в строке между этими образцами.

Если нужно найти не определенный символ и не любой символ, а некоторую группу символов, то используются квадратные скобки. Эти специальные символы служат для обозначения группы возможных символов. Символы этой группы заключаются в квадратные скобки и перечисляются один за другим. Символы, совпадающие с перечисленными в этой группе, считаются найденными.

doc[agN]

list of documents совпадения нет

doca docb

docg docN docP

week[245]

week2 weather

reports on week4

week1 reports совпадения нет

Соседние файлы в папке Лабы1