Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пошук у файлах за допомогою команди grep, egrep і fgrep. ⇐ ПредыдущаяСтр 6 из 6
Всі команди egrep в основному схожі між собою. Єдина істотна відмінність полягає в тому, що в шаблонах підстановки egrep використовується дещо відмінний від інших команд синтаксис, тоді як fgrep використовує фіксовані рядки. Специфічні деталі, що відносяться до можливостей шаблонів підстановки цих програм, можна знайти в керівництві по використовуванню програми grep. Наприклад, якщо вам необхідно знайти в керівництві всі рядки, які починаються з цифри, скористайтеся наступним записом: # grep ^[0-9] guide.txt 1 Introduction to Linux 1 2 Obtaining and Installing Linux 40 3 Linux Tutorial 85 4 System Administration 137 ... # egrep ^ [0-9] guide.txt 1 Introduction to Linux 1 2 Obtaining and Installing Linux 40 3 Linux Tutorial 85 4 System Administration 137 ... # fgrep ^ [0-9] guide.txt Як видно з наведеного прикладу, grep і egrep повертають результати пошуку (приводяться тільки перші чотири рядки виведення). Оберніть, проте, увагу на те, що fgrep не обробляє регулярних виразів. При роботі з fgrep слід використовувати фіксовані шаблони або рядки, наприклад: # fgrep friend guide.txt large extent window manager. This friendly program is in Linux from а friend who may already have software, or share (Unfortunately, system was being unfriendly.) Тепер скористаємося командою egrep для пошуку в тексті файлу прикладів, в яких зустрічається вираз (b): # egrep "\([b]\)" guide.txt. (see Section 1.8 for а list compatible boards), or (b) there is an connect to network, or (b) уоu have а ''dynamic'' IP address В результаті знайдено два рядки файлу, в точністі відповідну (b). А зараз подивимося, що вийде, якщо застосувати для пошуку програму grep: # grep "\([b]\)" guide.txt This is version 2.2.2 book, "Linux Installation and Getting to PostScript printers. This document was generated а set tools from LaTeX source, so there may be а number formatting problems. This is not "official version book"! Please see Як бачите, команда grep не використовує той же синтаксис, що і команда egrep. В даному випадку можна використовувати більш простий підхід: # grep "(b)" guide.txt (see Section 1.8 for а list compatible boards), or (b) there is an connect to network, or (b) уоu have а "dynamic'' IP address Цей шаблон працює і з grep, і з fgrep. Якщо ви спробуєте застосувати цей шаблон з egrep, ви отримаєте точно такий же результат, як у разі використовування розширеного регулярного виразу з grep (тобто всі рядки, що містять (b)). Всі програми сімейства grep працюють приблизно з однаковим набором опцій командного рядка. Одна з опцій -n, що часто використовуються, або опція нумерації рядків (line numbering). Ця опція вельми зручна, оскільки дає можливість побачити, які саме рядки файлу містять збіги з шаблоном. Що приводиться нижче приклад застосовний для будь-якої з grep -програм.
# egrep -n "friend" guide.txt 1242: large extent window manager. This friendly program is 1942: сміттю Linux from а friend who may already have software, or 5161: (Unfortunately, system was being unfriendly.) Як видно з прикладу, збіги знайдені в рядках 1242, 1942 і 5161. Ще одна корисна властивість grep-програм полягає в тому, що вам не потрібно повторювати введення вашого шаблона при кожній спробі виконати пошук. Ось простий приклад. Якщо вам необхідно повторно здійснити пошук різних слів в тексті файлу, ви можете помістити пошуковий запит у файл для його подальшого використовування. Спочатку створіть текстовий файл, а потім для завдання файлу, в якому здійснюватиметься пошук, задайте опцію -f, як в наведеному приклад: # cat > mywords wonderful Typewriter War # grep -nf mywords guide.txt 574:Typewriter Used to represent screen interaction, as in 617: software since original Space War, or, more recently, Emacs 1998: Now уоu must be convinced how wonderful Linux is, and all 2549:inanimate object is а wonderful way to relieve осcasional 3790: Warning: Linux cannot currently use 33090 sectors 7780: to wear magic hat when it is not needed, despite wonderful 10091: wonderful programs and configurations are available with а bit Оскільки в прикладі також використовується опція нумерації рядків, повинно бути зрозуміло, що вона повинна задаватися перед опцією -f, або опцією вказівки файлу (f — file), в іншому випадку grep видає повідомлення про те, що не може знайти файл з ім'ям n і завершує роботу. Можна примусити grep працювати як fgrep за допомогою опції -F, або як egrep за допомогою опції -Е.
|
|||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 235; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.213.128 (0.007 с.) |