Направо към съдържанието

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*'