Skip to content

Latest commit

 

History

History
59 lines (37 loc) · 4.59 KB

103_7.md

File metadata and controls

59 lines (37 loc) · 4.59 KB

103.7 Поиск информации при помощи регулярных выражений

Студент должен уметь осуществлять поиск необходимых файлов и информации внутри них.

Изучаем :

  • создание простых регулярных выражений;
  • инструменты, опирающиеся на эти выражения, для поиска файлов.

**Термины и утилиты: **

  • grep
  • egrep
  • fgrep
  • rgrep
  • sed
  • регулярные выражения.

Частой задачей в Linux является поиск необходимых файлов и сортировка информации внутри них. Для этой задачи служат регулярные выражения – специальный язык поиска и изменения информации, обладающий своим синтаксисом.

При отборе информации можно использовать стандартные групповые символы:

  • ^ _ - начало строки;_
  • **$ ** _ - конец строки;_
  • **. ** _ - любой символ;_
  • <** a **** ** - слово, начинающееся с " a";
  • >** a **** ** - c лово, заканчивающееся на " a_";_
  • a** - z ] **** -** диапазон от " a" до " z";
  • [^t]** **** -** не буква " t";
  • a|z** **** -** " a" или " z " ;
  • и т.д.;

Для простой сортировки набора строк используется команда grep , например:

grep** oo file. **txt (отобразить в файле текст с двумя буквы « o » подряд);

ls | grep** ile** (вывести названия содержимого каталога с набором символов ' ile');

grep** ple $ file. **txt (отобразить в файле file . txt строки, заканчивающиеся на ' ple');

Для расширенной сортировки и поиска по сложным регулярным выражениям используется команда egrep (также можно использовать grep -** E**), например:

egrep '^(b | d)' file**. **txt (все строки, что начинаются с " b" или " d");

egrep '^[a - k]' file**. **txt (все строки, что начинаются с " a" по " k");

Для быстрой сортировки и поиска по набору символов без регулярных выражений используется команда fgrep (также можно использовать grep -** F**), например:

fgrep** c $ file. **txt _ (отобразить в_ file . txt последовательность символов " c $");

Для рекурсивной (включая вложенные каталоги и файлы) сортировки и поиска по набору символов используется команда rgrep (также можно использовать grep -** R**), например:

rgrep ** **** word**_ (вывести позиции содержащие « word » в текущем и всех вложенных каталогах__);_

Для изменения текстового потока согласно заданным правилам используется редактор sed, например:

sed ** e ****' s / oo / aa /' file. **txt (заменить в file . txt все " oo" на " aa" );

sed ** re ****' s /^( B | b )/ C' file. txt > newfile. **txt (в строках, начинающихся с « B » или « b », заменить первую букву на «С» и сохранить результат в newfile . txt_);_