Пример команды grep | |
Исходный автор (ы) | Кен Томпсон |
---|---|
Разработчик (и) | ATT Bell Laboratories |
Первоначальный выпуск | ноябрь 1974 г.; 45 лет назад (1974-11) |
Платформа | Unix, Unix-like, Plan 9, Inferno, OS-9, MSX-DOS, IBM i |
Тип | Команда |
grep
- это командная строка утилита для поиска в наборах данных в виде обычного текста строк, соответствующих регулярному выражению . Его имя происходит от команды g / re / p (g локальный поиск r egular e xpression и p rint совпадающих строк), который имеет тот же эффект. grep
изначально был разработан для операционной системы Unix, но позже стал доступен для всех Unix-подобных систем и некоторых других, таких как OS-9.
До своего названия grep была частной утилитой, написанной Кеном Томпсоном для поиска файлов по определенным шаблонам. Дуг Макилрой, не подозревая о его существовании, попросил Томпсона написать такую программу. Отвечая, что он подумает о такой утилите в одночасье, Томпсон фактически исправил ошибки и внес улучшения примерно в течение часа. На следующий день он представил программу Макилрою, который сказал, что это именно то, что он хотел. Отчет Томпсона может объяснить убеждение, что grep был написан за одну ночь.
Томпсон написал первую версию на PDP-11 языке ассемблера, чтобы помочь Ли Э. МакМахону. проанализировать текст Записок федералиста, чтобы определить авторство отдельных статей. Программа (также созданная Томпсоном) имела поддержку регулярных выражений , но не могла использоваться с таким большим объемом текста, поэтому Томпсон извлек этот код в отдельный инструмент. Он выбрал это имя, потому что в ed команда g / re / p будет печатать все строки, соответствующие заданному шаблону. grep
впервые был включен в версии 4 Unix. Заявив, что он «обычно упоминается как прототип программного средства», Макилрой приписал grep
«безвозвратное внедрение» философии инструментов Томпсона в Unix.
В следующем примере демонстрируется вывод команды grep
с разными аргументами
$ grep root / etc / passwd root: x: 0: 0: root: / root: / bin / bash оператор: x: 11: 0: оператор: / root: / sbin / nologin $ grep -n root / etc / passwd 1: root: x: 0: 0: root: / root: / bin / bash 12: оператор: x : 11: 0: operator: / root: / sbin / nologin $ grep -c false / etc / passwd 7
Разнообразные реализации grep
доступны во многих операционных системы и среды разработки программного обеспечения. Ранние варианты включали egrep
и fgrep
, представленные в версии 7 Unix. Вариант «egrep
» поддерживает синтаксис расширенного регулярного выражения, добавленный Альфредом Ахо после исходной реализации регулярного выражения Кена Томпсона. Вариант "fgrep
" выполняет поиск любой из списка фиксированных строк с использованием алгоритма сопоставления строк Ахо – Корасика. Двоичные файлы этих вариантов сохраняются в большинстве современных систем, однако их явное использование устарело, а функции этих вариантов включены в grep
в качестве ключей командной строки -E
и -F
; поэтому использование переключателей является рекомендуемым методом использования.
Другие команды содержат слово «grep», чтобы указать, что они ищут (обычно для совпадений регулярных выражений). Утилита pgrep
, например, отображает процессы, имена которых соответствуют заданному регулярному выражению.
В языке программирования Perl grep - это имя встроенной функции, которая находит элементы в списке, удовлетворяющие определенному свойству. Эта функция высшего порядка обычно называется фильтром на языках функционального программирования.
Команда pcregrep
является реализацией grep
, в которой используется синтаксис регулярных выражений Perl. Аналогичные функции могут быть вызваны в GNU-версии grep
с флагом -P
.
Порты из grep
(внутри Cygwin и GnuWin32, например) также работают под Microsoft Windows. В некоторых версиях Windows есть похожая команда qgrep
или findstr
. Команда
A grep
также является частью ASCII ' s Инструменты MSX-DOS2 для MSX-DOS версии 2.
Команды grep, egrep и fgrep также были перенесены на IBM i операционной системы.
Программное обеспечение Adobe InDesign имеет функции GREP (начиная с версии CS3 (2007)) на вкладке «GREP» диалогового окна поиска / изменения и введено в InDesign CS4 в стилях абзацев «Стили GREP ".
соглашениеp (приблизительный grep) соответствует даже тогда, когда текст только приблизительно соответствует шаблону поиска.
Следующий вызов находит маски сети в файле myfile, но также и любое другое слово которое может быть получено из него, сделав не более двух замен.
comparep -2 netmasks myfile
В этом примере создается список совпадений с ближайшим, то есть с наименьшим количеством замен, перечисленных первыми. Флаг команды B означает наилучшее:
соглашениеp -B netmasks myfile
В декабре 2003 г. был добавлен онлайн-словарь Oxford English Dictionary черновик записей для "grep" как существительного и глагола.
Распространенным использованием глагола является фраза «Вы не можете grep мертвых деревьев». Это означает, что с помощью таких инструментов, как grep
, поиск по цифровым носителям будет проще, чем с помощью бумажная копия (т. е. сделанная из мертвых деревьев, бумаги). Сравните с google.
grep
grep
grep
"Викибук Как искать имеет страница по теме: grep |
grep (1)
– Plan 9 Руководство программиста, том 1grep (1)
– Inferno Общие команды Руководство