Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

GREP

Основная программа, которую мы будем использовать для работы с регулярными выражениями, - это наш старый приятель, GREP. Название «grep» на самом деле происходит от фразы «глобальное регулярное выражение print», поэтому мы можем видеть, что GREP имеет какое-то отношение к регулярным выражениям. По сути, GREP ищет в текстовых файлах текст вхождения, соответствующий указанному регулярному выражению, и выводит любую строку, содержащую совпадение, в стандартный вывод.


До сих пор мы использовали GREP с фиксированными строками, например:


[я @ linuxbox ~] $ ls / usr / bin | grep zip

[я @ linuxbox ~] $ ls / usr / bin | grep zip


Это перечислит все файлы в / USR / бен каталог, в именах которого есть подстрока «zip».

Ассоциация GREP программа принимает параметры и аргументы следующим образом:

грэп [кредита] регулярное выражение [файл ...]

в котором регулярное выражение является регулярным выражением.

Вот список наиболее часто используемых GREP опции:


Таблица 19-1: Параметры grep


Вариант Описание

Вариант Описание

-i Игнорировать регистр. Не различайте символы верхнего и нижнего регистра. Также может быть указано --игнорировать регистр.


изображение

-v Инвертировать совпадение. Как обычно, GREP печатает строки, содержащие совпадения.

Эта опция вызывает GREP для печати каждой строки, не содержащей совпадений. Также может быть указано --invert-match.


изображение

-c Выведите количество совпадений (или несовпадений, если -v также указывается опция) вместо самих строк. Также может быть указано --считать.


изображение

-l Выведите имя каждого файла, содержащего совпадение, вместо самих строк. Также может быть указано - файлы с совпадениями.


изображение

-L Аналогично опции -l, но выводит только имена файлов, не содержащих совпадений. Также можно указать --files-without- match.


изображение

-n Префикс каждой совпадающей строки с номером строки в файле. Также можно указать --line-number.


изображение

-h Для многофайлового поиска подавите вывод имен файлов. Также может быть указано --без имени файла.


изображение


Чтобы более полно изучить GREP, давайте создадим несколько текстовых файлов для поиска:

GREP


[я @ linuxbox ~] $ ls / bin> dirlist-bin.txt [я @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [я @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [я @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [я @ linuxbox ~] $ ls dirlist * .txt

список каталогов-bin.txt список каталогов-sbin.txt список каталогов-usr-sbin.txt список каталогов-usr-bin.txt

[я @ linuxbox ~] $ ls / bin> dirlist-bin.txt [я @ linuxbox ~] $ ls / usr / bin> dirlist-usr-bin.txt [я @ linuxbox ~] $ ls / sbin> dirlist-sbin.txt [я @ linuxbox ~] $ ls / usr / sbin> dirlist-usr-sbin.txt [я @ linuxbox ~] $ ls dirlist * .txt

список каталогов-bin.txt список каталогов-sbin.txt список каталогов-usr-sbin.txt список каталогов-usr-bin.txt


Мы можем выполнить простой поиск в нашем списке файлов следующим образом:



[я @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover

[я @ linuxbox ~] $ grep bzip dirlist * .txt

dirlist-bin.txt: bzip2 dirlist-bin.txt: bzip2recover


В этом примере GREP ищет во всех перечисленных файлах строку bzip и находит два совпадения, оба в файле список каталогов-bin.txt. Если бы нас интересовал только список файлов, содержащих совпадения, а не сами совпадения, мы могли бы указать -l опции:



[я @ linuxbox ~] $ grep -l bzip dirlist * .txt

список каталогов-bin.txt

[я @ linuxbox ~] $ grep -l bzip dirlist * .txt

список каталогов-bin.txt


И наоборот, если бы мы хотели увидеть только список файлов, которые не содержат совпадений, мы могли бы сделать это:



[я @ linuxbox ~] $ grep -L bzip dirlist * .txt

список каталогов-sbin.txt список каталогов-usr-bin.txt список каталогов-usr-sbin.txt

[я @ linuxbox ~] $ grep -L bzip dirlist * .txt

список каталогов-sbin.txt список каталогов-usr-bin.txt список каталогов-usr-sbin.txt


Лучшие облачные вычисления для ОС в OnWorks: