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*'
Външни препратки
[редактиране | редактиране на кода]- man grep Архив на оригинала от 2006-10-21 в Wayback Machine.
- Grep за Windows
|