Що таке Grep в CBuilder?

Одна з найбільш корисних допоміжних програм у постачанні Borland CBuilder – GREPEXE Grep – це «Generalized Regular Expression Parser» (основна програма розбору регулярних виразів) Програма grep була стандартною в системі Unix протягом багатьох років, а потім була переписана для DOS і Windows Простіше кажучи, grep – інструмент пошуку, вона вміє переглядати текстові (і не тільки текстові) файли і шукати в них рядки, які підходять під заданий зразок Основні альтернативи утиліті grep – програма Norton Text Search або команда Find в Windows Explorer Жодна з них, проте, не зрівняється з grep потужністю і гнучкістю

Для використання grep вам потрібні дві речі: рядок пошуку і маска файлів, в яких її треба шукати Grep вміє шукати файли, що містять відповідні рядки, в каталозі, в каталозі з усіма підкаталогами, по всьому диску Вона разюче швидка і точна, і фактично єдине, за що ви можете не любити цю програму, – її потворне назва

У табл 83 наведені основні аргументи команди grep

Таблиця 83 Параметри команди grep

-R Використовувати розбір регулярних виразів

-C Замість роздруківки імен знайдених файлів видавати їх кількість

-V Показувати всі рядки, НЕ підходять під задану рядок, замість підходящих

-D Шукати в підкаталогах

-L Відображати тільки імена файлів, що містять відповідні рядки

-N Відображати номери рядків, в яких знаходиться відповідний текст

-I Результат пошуку не залежить від регістру символів

-Z Робота в режимі з докладними повідомленнями (verbose mode)

Щоб грамотно використовувати grep, Вам потрібно дещо знати про розборі регулярних виразів Як новачкові, вам досить знати лише кілька команд:

. (Точка) вказує на будь-який символ в рядку, так що Ht буде підходити під наступні рядки:

·&nbsp&nbsp&nbsp Hot

·&nbsp&nbsp&nbsp Hat

·&nbsp&nbsp&nbsp Hut

·&nbsp&nbsp&nbsp Hit

^ («Кришечка») буде підходити тільки під символи, що зустрічаються на початку рядка Тому, якщо у вас є такі рядки тексту:

This is a test

Why is This happening

There is This There is That

і ви будете шукати ^ This, то буде знайдена тільки перший рядок Зірочка (*) і плюс (+) використовуються для декількох символів Наприклад, A * підходить під нуль або більше символів A в рядку тому всі наступні рядки соответству ють цьому виразу:

AAA AA A

B

Останній рядок підходить, так як вона містить 0 символів A Зірочка є дуже потужною командою, яку треба використовувати обережно При необережному використанні вона вам видасть набагато більше «Збіглися» рядків, ніж вам би хотілося

Плюс, з іншого боку, підходить тільки під один і більше символ в рядку, так що пошук за цим списком рядків на текст A + поверне все, крім останнього рядка, в якій немає жодного символу A

Якщо ви хочете знайти кілька символів, використовуйте команди [] Наприклад, якщо задати зразок [aeiou], то ви знайдете всі рядки, що містять голосні (англійські) Якщо ж, навпаки, задати [^ aeiou], то ви отримаєте всі рядки, що не містять голосних

Давайте подивимося на пару прикладів використання команди grep для пошуку файлу або декількох файлів

Для початку розглянемо простий пошук Все, що я хочу, – це знати, на якому рядку у файлі

«Fredtxt» знаходиться слово «attack» Тоді я б набрав наступну команду:

grep -n attack fredtxt

Ця команда поверне мені всі рядки зі словом «attack» разом з номером цього рядка у файлі

«Fredtxt» Тепер давайте розглянемо пошук всіх входжень слова «main» у вихідних файлах

( Cpp) в каталозі проектів CBuilder Для пошуку цієї групи файлів я б використав команду

grep -d main *cpp

Вона виведе всі рядки, що містять «main» у файлах з розширенням Cpp в даному каталозі або будь-якому його підкаталозі (згадайте, що ключ-d змушує робити рекурсивний пошук по підкаталогам) І нарешті, давайте знайдемо всі функції, які повертають ціле значення, в поточному каталозі Як це зробити Дуже просто Функції зазвичай описуються на початку рядка Першим у рядку ви знайдете саме тип результату, що повертається функцією Так що ми попросимо програму grep шукати всі рядки, в яких на початку стоїть слово «int» Ось команда, яку потрібно використовувати:

grep ^int *cpp

Якщо ви запустите її в одному з каталогів з вашими файлами, то, можливо, побачите, що ця програма знайде всі функції, які повертають ціле Хоча, звичайно, grep – не ідеал, але це разюче швидка і дуже маленька програма Вона настільки близька до ідеалу, наскільки це може компютерна програма

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*