Grep

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Правилното заглавие на статията е grep, но поради технически причини се изписва Grep

grep е програма в команден ред, първоначално написана за Unix. Съществува по подразбиране на всички Unix-подобни операционни системи. Стандартното поведение на grep е да взима регулярен израз и текст (от STDIN или от файлове) и да показва редовете от текста, съвпадащи с регулярния израз. За откриване на съвпадения програмата използва недетерминирани крайни автомати: за всеки регулярен израз се построява съответния автомат и през него се прекарва текста ред по ред.

Произход на името[редактиране | edit source]

Името произлиза от команда в текстовия редактор за Unix ed:

g/re/p

което означава "search globally for lines matching the regular expression, and print them" („търси глобално за редове, съвпадащи с регулярния израз и ги отпечатай“)

Начини на употреба[редактиране | edit source]

Можем да приложим grep директно върху файл или върху файлове в директория.

user@host:~$ grep ordre documents_fac.txt 
   6. Chèque libellé à l'ordre de l'agent comptable UJM

Командата може да се използва и като филтър, чрез канали (pipes). Например:

user@host:~$ ps -e | grep getty
 3811 tty1     00:00:00 getty
 3812 tty2     00:00:00 getty
 3813 tty3     00:00:00 getty
 3814 tty4     00:00:00 getty
 3815 tty5     00:00:00 getty
 3816 tty6     00:00:00 getty

Това прави командата изключително удобна за употреба в шел скриптове.

Командата може да бъде изпълнена и на други операционни системи. Например Windows:

::намери директориите и файловете съдържащи sal в името си 
dir /s /b | grep "*sal*"

Командата може да бъде използвана и за рекурсино сканиране на директории, например:

find /dir/to/start/recursive/search/from -name '*bash*' -exec grep -nHP '*APerlRegex*' {} \;

би потърсила във всеки файл съдържащ в името си "bash" низа за низ отговаряш на шаблона '*APerlRegex*'

Външни препратки[редактиране | edit source]