Основы программирования в Linux - Мэтью Нейл Страница 33
- Категория: Компьютеры и Интернет / Интернет
- Автор: Мэтью Нейл
- Страниц: 324
- Добавлено: 2020-09-22 15:22:12
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала
Основы программирования в Linux - Мэтью Нейл краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Основы программирования в Linux - Мэтью Нейл» бесплатно полную версию:В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов
Основы программирования в Linux - Мэтью Нейл читать онлайн бесплатно
Команда grep принимает опции, шаблон соответствия и файлы для поиска:
<b>grep</b> [<i>опции</i>]<i> шаблон</i> [<i>файлы</i>]
Если имена файлов не заданы, команда анализирует стандартный ввод.
Давайте начнем с изучения основных опций команды grep. И на этот раз в табл. 2.14 приведены только самые важные из них; полный список см. на страницах интерактивного справочного руководства.
Таблица 2.14
Опция Описание -с Вместо вывода на экран совпавших с шаблоном строк выводит их количество -E Включает расширенные регулярные выражения -h Ужимает обычное начало каждой строки вывода за счет удаления имени файла, в котором строка найдена -i Не учитывает регистр букв -l Перечисляет имена файлов со строками, совпадающими с шаблоном; не выводит сами найденные строки -v Меняет шаблон соответствия для выбора вместо строк, соответствующих шаблону, несовпадающих с ним строкВыполните упражнение 2.17.
Упражнение 2.17. Основной вариант использования команды grepПосмотрим команду grep в действии на примерах простых шаблонов.
$ <b>grep in words.txt</b>
When shall we three meet again. In thunder, lightning, or in rain?
I come, Graymalkin!
$ <b>grep -c in words.txt words2.txt</b>
words.txt:2 words2.txt:14
$ <b>grep -c -v in words.txt words2.txt</b>
words.txt:9
words2.txt:16$
Как это работает
В первом примере нет опций; в нем просто ищется строка in в файле words.txt и выводятся на экран любые строки, соответствующие условию поиска. Имя файла не отображается, поскольку поиск велся в единственном файле.
Во втором примере в двух разных файлах подсчитывается количество строк, соответствующих шаблону. В этом случае имена файлов выводятся на экран.
В заключение применяется опция -v для инвертирования критерия поиска и подсчета строк, не совпадающих с шаблоном.
Регулярные выраженияКак вы убедились, основной вариант применения команды grep легко усвоить. Теперь пришло время рассмотреть основы построения регулярных выражений, которые позволят вам выполнять более сложный поиск. Как упоминалось ранее в этой главе, регулярные выражения применяются в системе Linux и многих языках программирования с открытым исходным кодом. Вы можете использовать их в редакторе vi и в скриптах на языке Perl, применяя одни и те же принципы, общие для регулярных выражений, где бы они ни появлялись.
При обработке регулярных выражений определенные символы интерпретируются особым образом. В табл. 2.15 приведены наиболее часто используемые в регулярных выражениях символы.
Таблица 2.15
Символ Описание ^ Привязка к началу строки $ Привязка к концу строки . Любой одиночный символ [] В квадратных скобках содержится диапазон символов, с любым из них возможно совпадение, например, диапазон символов a-e или инвертированный диапазон, перед которым стоит символ ^Если вы хотите использовать любые из перечисленных символов как "обычные", поставьте перед ними символ \. Например, если нужно найти символ $, просто введите \$.
Есть также несколько полезных специальных проверочных шаблонов, которые могут указываться в квадратных скобках (табл. 2.16).
Таблица 2.16
Проверочный шаблон Описание [:alnum:] Буквенно-цифровые символы [:alpha:] Буквы [:ascii:] Символы таблицы ASCII [:blank:] Пробел или табуляция [:cntrl:] Управляющие символы ASCII [:digit:] Цифры [:graph:] Неуправляющие и непробельные символы [:lower:] Строчные буквы [:print:] Печатные символы [:punct:] Знаки пунктуации [:space:] Пробельные символы, включая вертикальную табуляцию [:upper:] Прописные буквы [:xdigit:] Шестнадцатиричные цифрыКроме того, если задана опция =E для расширенного соответствия, за регулярным выражением могут следовать и другие символы, управляющие выполнением проверки на соответствие шаблону (табл. 2.17). В команде grep перед этими символами необходимо вводить символ \.
Таблица 2.17
Опция Описание ? Совпадение не обязательно, но возможно не более одного раза * Совпадения может не быть, оно может быть однократным или многократным + Совпадение должно быть однократным или многократным {<i>n</i>} Совпадение должно быть <i>n</i> раз {<i>n</i>, } Совпадение должно быть <i>n</i> раз и больше {<i>n</i>, <i>m</i>} Совпадение должно быть от <i>n</i> до <i>m</i> раз включительноЖалоба
Напишите нам, и мы в срочном порядке примем меры.