grep

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

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

g/re/p

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

Начини на употреба

[редактиране | редактиране на кода]

Можем да приложим 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*'