grep — утиліта інтерфейсу командного рядка, яка знаходить на вводі рядки, що відповідають заданому регулярному виразу, і виводить їх. Назва утиліти є послідовністю команд пошуку регулярних виразів у редакторі ed — g/re/p. Цю послідовність команд можна описати англійською фразою «search globally for lines matching the regular expression, and print them» — «шукати скрізь рядків, відповідних регулярному виразу, і виводити їх».
Спочатку була створена для операційної системи UNIX.
Існують модифікації grep: egrep (з обробкою розширених регулярних виразів), fgrep (що тлумачить символи $*[]^|()\ буквально), rgrep (з включеним рекурсивним пошуком).
Згідно з документацією man: «egrep те ж саме що grep -E. fgrep те ж саме що grep -F. rgrep те ж саме що grep -r».
Синтаксис grep "регулярний вираз" "файл" або cat "файл" | grep "регулярний вираз"
Приклад: вивести з файлу «words.txt» всі рядки, що починаються з букви «a» grep "^a" "words.txt"
Приклад: з результату команди uptime вивести тільки завантаження системи зручно для запису у uptime | grep -o "load average.*"
Приклад: проглядання конфігураційних файлів без коментаря і порожніх рядків: cat /usr/src/sys/i386/conf/GENERIC | grep -v '^#' | sed '/^$/d' | more cpu I486_CPU cpu I586_CPU cpu I686_CPU ident GENERIC makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_4BSD # 4BSD scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists
Див. також pgrep — grep по ps Алгоритм Коменц-Вальтер
Посилання The grep Command — by The Linux Information Project (LINFO) «The Treacherous Optimization» — article on tradeoffs in grep to favor best-case over worst-case scenarios Egrep for linguists An introduction to egrep Tony Abou-Assaleh's list of Greps Usage of grep Command