|
|||||||||||||||||||
|
Утилита GreepGREP - это мощная поисковая утилита, которая может осуществлять просмотр текста в нескольких файлах одновременно. Например, если Вы забыли в какой программе определена процедура SetUpModem, Вы можете использовать программу GREP для просмотра содержимого всех .PAS файлов в Вашем справочнике на наличие строки SetUPMyModem. Синтаксис командной строки для программы GREP следующий: GREP [опции] поисковая строка [спецификация файла...] где опции - состоят из одного или более одиночных символов с дефисом впереди, "поисковая строка" определяет шаблон для поиска и "спецификация файла" - путь и имя файла. Спецификация файла информирует GREP о файлах (или группах файлов) подлежащих просмотру это может быть явное задание имени или использование символов поиска по шаблону (? и *). Указание пути файла не является обязательным. Если Вы используете спецификацию файла без указания пути, программа GREP делает просмотр только в текущем справочнике. Если Вы не укажете спецификацию файла, ввод для программы GREP должен осуществляться перенаправлением стандартного ввода или использованием канала.
Переключатели программы GREP.В командной строке, опции представляют собой один или более одиночных символов с дефисом (-) впереди. Каждый отдельный символ - это переключатель, который Вы можете включить или выключить: знак (+) после символа включает опцию, а знак минус (-) выключает. Значение по умолчанию - включено (подразумевается +): например, - R означает то же самое, что и -R+. Вы можете составить список опций следующим образом: (-I -P -L). Или Вы можете об'единить их: -ILD или (-IL -D, и т.д.). Для программы GREP все это является идентичным. Ниже приводится список переключателей и их значения: - С Только подсчет: Выдается только подсчет количества соответствующих поисковых строк. Для каждого файла, содержащего по крайней мере одну искомую строку, GREP выдает имя файла и подсчет количества соответсвующих строк. Сами строки не отображаются. - D Справочники: Для каждой спецификации файла, приведенной в командной строке, GREP просматривает все файлы, которые соответствуют этой спецификации, как в указанном справочнике, так и во всех подчиненных справочниках. Если Вы не указали в спецификации файла пути, GREP предполагает, что файлы находятся в текущем справочнике. - I Игнорировать верхний/нижний регистры: Программа GREP игнорирует различия верхнего/нижнего регистров. GREP интерпретирует все буквы от а до z, как идентичные соответствующим буквам A-Z. - L Выдать список соответствующих файлов: Выдается только имя каждого файла, содержащего поисковую строку. Как только программа GREP находит соответствие, она выдает имя файла и сразу же переходит к просмотру следующго файла. - N Номера строк: Каждая соответствующая строка, выводимая программой GREP сопровождается предшествующим номером строки. - О UNIX-подобный формат вывода: Изменяет формат вывода соответствующих строк для организации канала связи UNIX-подобного формата. Всем строкам на выходе предшествует имя файла, который содержит искомые строки. - R Поиск нормального выражения: Текст определенный строкой поиска интерпретируется как нормальное выражение, вместо буквенной строки. - U Обновить опции: GREP об'единяет опции, заданные в командной строке с другими не указанными опциями (со значениями по умолчанию) и записывает их в файл GREP.COM как новые значения по умолчанию. (Другими словами, программа GREP самоконфигурируется). Эта опция позволяет Вам произвести установку опций по умолчанию по своему усмотрению. - V Несоответствие: Выводятся только не соответсвующие строки. Не соответсвующими строками считаются только строки, не содержащие поисковой строки. - W Поиск слова: Искомый текст, соответствующий нормальному выражению считается соответствием только в случае, если предшествующий и последующий символы не являются частью слова. По умолчанию набор символов слова включает A-Z, 9-0 и подчеркивание (_). Дополнительная форма этой опции позволяет Вам специфицировать набор допустимых символов в слове. Эта форма имеет вид - W [набор], где "набор" - любой допустимый набор. Если для определения набора используются алфавитные символы, набор автоматически определяется, как содержащий значения как верхнего так и нижнего регистров для каждой буквы. Если опция -W используется совместно с опцией -U, то новый набор допустимых символов сохраняется в качестве набора по умолчанию. - Z Дополнительная информация: GREP выводит имя каждого просматриваемого файла. Каждая соответствующая строка предваряется ее номером. Дается подсчет соответствующих строк для каждого файла, даже если он равен нулю. Некоторые из этих опций находятся в противоречии друг с другом. В этом случае необходимо придерживаться следующего порядка в применении. -Z -L -C -N Каждое появление опции отвергает предыдущее определение: Состояние опций отражает установленный Вами порядок использования. В любой данный момент времени каждая опция может быть только включенной, или только выключенной. Вы можете установить предпочитаемые Вами значения по умолчанию для каждой опции GREP.COM при помощи опции -U. Например, если Вы хотите, чтобы GREP всегда осуществляла поиск с выдачей дополнительной информации (опция -Z включена), Вы можете установить этот режим с помощью следующей команды: GREP -U -Z
Как осуществлять поиск с помощью программы GREP.Значение строки поиска определяет образец поиска для программы GREP. Поисковая строка может быть или нормальным выражением (через переключатель -R) или буквенной строкой. В нормальных выражениях операторы рассматриваются как единое целое, буквенные поисковые строки не содержат операторов. Вы можете заключить поисковую строку в кавычки для предотвращения интерпретации пробелов и знаков табуляции в качестве разделителей. Поиск соответствия не должен пересекать границ строк (каждое соответствие должно находится в пределах отдельной строки). Когда используется переключатель -R, поисковая строка интерпретируется как нормальное выражение (в противоположность буквенному выражению), при этом следующие символы имеют специальные значения: ^ Этот знак (символ вставки) в начале выражения соответствует началу строки. $ Знак доллара в конце выражения соответствует концу строки. . Точка соответствует любому символу. * Выражение следующее за символом звездочки соответствует нулевому или большему количеству появлений этого выражения: fo* соответствует fo, foo и т.д., но не f. [] Строка, заключенная в скобки соответствует любому символу в этой строке, но не в другой. Если первый символ в строке - символ вставки, выражение соответствует любому символу, кроме символов в самой строке. Например [xyz] соответствует x, y и z, в то время как [^xyz] соответствует а и в, но не х или у. Диапазон символов может быть задан двумя символами, отделенными дефисом (-). Могут быть комбинации для формирования выражений, вроде [?a-bd-z] для соответствия символу ? и любой букве, кроме с. \ Символ обратной наклонной черты, сообщает программе GREP о поиске последующего буквенного символа. Например, \. соответствует точке. Заметьте: Четыре символа (?, +, * и.) не имеют какого-либо специального значения, если они используются в наборе. Символ ^ интерпретируется специальным образом только в том случае, если он сразу же следует в начале набора (т. е. сразу же после символа [). Любой обычный символ, не упомянутый в этом списке соответствует самому символу. Конкатенация нормальных выражений являтся нормальным выражением.
Примеры использования программы GREP.------------------------------------------------------------------- Следующие примеры предполагают, что опции по умолчанию имеют положение - off (выключено). grep main (*.pas соответствует : main() mymain( Не соответствует : mymainfunс() MAIN(i: integer); Просматривает : *.pas в текущем справочнике. Примечание : По умолчанию, поиск зависит от положения верхнего/нижнего регистра. ------------------------------------------------------------------- grep -R[^a-z]main\*(*.pas Соответствует: main(i: integer) main(i,j: integer)
Не соответствует: mymain() MAIN(i: integer); Просматривает : *.pas в текущем справочнике. Примечание : Поскольку пробелы и знаки табуляции обычно считаются разделителями в командной строке, Вы должны заключить их в кавычки, если Вы хотите включить их в качестве части нор- мального выражения. В Вашем примере пробел после слова main был заключен в кавычки, с использованием символа обратной наклонной черты. Вы также можете выполнить это, по- местив пробел или целое нормальное выраже- ние в двойные кавычки ("). ------------------------------------------------------------------- grep -RI[a-c]:\\data\.fil*.pas*.inc Соответсевует: A:\data.fil C:\Data.Fil B:\Data.Fil
Несоответствует: d:\data.fil a:data.fil writeln(*c:\\data.fil*);
Просматривает: *.pas и *.inc а текущем справочнике
Примечание: Если Вы хотите выполнить поиск символов \ и . Вы должны заключить их в кавычки, поместив впереди них символ обратной наклонной черты. ------------------------------------------------------------------- grep -RI[^a-z] word[^a-z]*.doc Соответствует: every new word must be on a new line MY WORD! word -- smallest unit of speech. In the beginning there was the WORD, and the WORD.
Не соответствует: Each file has at least 2000 words. He misspells toward as towоrd.
Просматривает: *.doc в текущем справочнике.
Примечание: Этот формат в основном применяется для по- иска слов. ------------------------------------------------------------------- grep "search string with spaces" *.doc *.asm a:\work\ myfile.*
Соответствует: This is a search string with spaces in it
Не соответствует: THIS IS A SEARCH STRING WITH SPACES IN IT.
Просматривает: *.doc и *.asm в текущем справочнике, и myfile.* в справочнике \work на устройствe А:
Примечание: Этот пример того, как осуществлять поиск строки со вставленными пробелами. ------------------------------------------------------------------- grep -RD"[,.:?'\"]" $\*.doc
Соответствует: He said hi to me. Where are you going? Happening in anticipation of a unique situation, Examples include the following: "Many men smoke, but fu man chu."
Не соответствует: He said "HI" to me Where are you going? I'm headed to the beach this
Просматривает: *.doc в корневом справочнике и во всех подсправочниках на текущем устройстве.
Примечание: Игнорирует различия верхнего/нижнего регистра и выдает имена всех файлов, которые содержат по крайней мере одно соответствие. В предыдущих примерах показаны различные способы спецификации ряда переключателей. Предыдущая страница | Следующая страница |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил