Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

Утилита Greep


 Предыдущая страница     |     Следующая страница  
Добавить в избанное Обсудить в форуме Написать автору сайта

    GREP -   это   мощная   поисковая   утилита,   которая   может осуществлять  просмотр  текста  в  нескольких  файлах одновременно. Например,  если Вы забыли в какой  программе  определена  процедура  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 программирование: Бурлаков Михаил

Используются технологии uCoz