Jump to content

схватить

(Перенаправлено с Pcregrep )
схватить
Оригинальный автор(ы) Кен Томпсон [1] [2]
Разработчик(и) AT&T Bell Laboratories
Первоначальный выпуск ноябрь 1973 года ; 50 лет назад ( 1973-11 ) [1]
Написано в С
Операционная система Unix , Unix-подобные , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i
Платформа Кросс-платформенный
Тип Команда

grep — это утилита командной строки для поиска в наборах данных открытого текста строк, соответствующих регулярному выражению . Его название происходит от ed команды g/re/p ( g lobal / выражениям по регулярным / поиск и печать ) , что имеет тот же эффект. [3] [4] grep изначально был разработан для операционной системы Unix , но позже стал доступен для всех Unix-подобных систем и некоторых других, таких как OS-9 . [5]

До своего названия grep была частной утилитой, написанной Кеном Томпсоном для поиска в файлах определенных шаблонов. Дуг Макилрой , не подозревая о ее существовании, попросил Томпсона написать такую ​​программу. Ответив, что он подумает о такой утилите за ночь, Томпсон фактически исправлял ошибки и около часа вносил улучшения в свою собственную программу под названием s (сокращение от «поиск»). На следующий день он представил программу Макилрою, который сказал, что это именно то, что он хотел. Отчет Томпсона может объяснить мнение о том, что grep был написан в одночасье. [6]

Томпсон написал первую версию на PDP-11 языке ассемблера , чтобы помочь Ли Э. МакМэхону проанализировать текст «Записок федералиста» и определить авторство отдельных статей. [7] ( Текстовый редактор ed также автор Томпсон) имел поддержку регулярных выражений , но его нельзя было использовать для поиска в таком большом объеме текста, поскольку он загружал весь файл в память, чтобы обеспечить возможность с произвольным доступом редактирования , поэтому Томпсон извлек этот код регулярного выражения в автономный инструмент, который вместо этого будет обрабатывать файлы произвольной длины последовательно, не буферизуя слишком много в памяти. [1] Он выбрал это имя, потому что в ed команда g/re/p будет печатать все строки, соответствующие заданному шаблону. [8] [9] grep впервые был включен в версию 4 Unix . Заявив, что его «обычно называют прототипом программного инструмента», Макилрой отметил, что grep Томпсона с «безвозвратно укоренившейся» философией инструментов в Unix. [10]

Реализации

[ редактировать ]

Разнообразие grep реализации доступны во многих операционных системах и средах разработки программного обеспечения. [11] Ранние варианты включены egrep и fgrep, представленный в версии 7 Unix . [10] " egrepВариант поддерживает расширенный синтаксис регулярных выражений , добавленный Альфредом Ахо после Кена Томпсона . оригинальной реализации регулярных выражений [12] " fgrepВариант " ищет любую из списка фиксированных строк с использованием алгоритма сопоставления строк Ахо-Корасика . [13] Двоичные файлы этих вариантов существуют в современных системах и обычно связаны с grep или вызов grep как сценария оболочки с добавленным соответствующим флагом, например exec grep -E "$@". egrep и fgrep, хотя они обычно используются в системах POSIX, но в спецификации POSIX упоминается их широкое распространение, на самом деле они не являются частью POSIX. [14]

Другие команды содержат слово «grep», обозначающее, что они являются инструментами поиска, обычно использующими совпадения с регулярными выражениями. pgrep Утилита, например, отображает процессы, имена которых соответствуют заданному регулярному выражению. [15]

В Perl языке программирования grep — это имя встроенной функции, которая находит в списке элементы, удовлетворяющие определенному свойству. [16] Эту функцию высшего порядка обычно называют filter или where на других языках.

The pcregrep команда представляет собой реализацию grep который использует синтаксис регулярных выражений Perl . [17] Аналогичная функциональность может быть реализована в версии GNU. grep с -P флаг. [18]

Порты grep ( в Cygwin и GnuWin32 например, ) также работает под Microsoft Windows . Некоторые версии Windows имеют аналогичную qgrep или findstr команда. [19]

А grep Команда также является частью ASCII инструментов MSX -DOS2 для MSX-DOS версии 2. [20]

The схватить , эгреп и Команды fgrep также были перенесены в операционную систему IBM i . [21]

Программное обеспечение Adobe InDesign имеет функции GREP (начиная с версии CS3 (2007 г.) [22] ), в поиска/изменения диалоговом окне [23] Вкладка «GREP», представленная в InDesign CS4. [24] в стилях абзаца [25] «Стили GREP».

схватить

[ редактировать ]

grep (приблизительный grep) соответствует , даже если текст лишь приблизительно соответствует шаблону поиска. [26]

Следующий вызов находит сетевые маски в файле myfile , а также любое другое слово, которое может быть получено из него, при условии не более двух замен.

agrep -2 netmasks myfile

В этом примере создается список совпадений с ближайшими, то есть с наименьшим количеством замен, указанными первыми. Командный флаг B означает лучшее :

agrep -B netmasks myfile

Использование как глагол

[ редактировать ]

В декабре 2003 года -словарь английского языка в Оксфордский онлайн слово «grep» было добавлено как существительное и глагол. [27]

Распространенным глаголом является фраза «Вы не можете найти мертвые деревья», означающая, что можно легче искать в цифровых медиа, используя такие инструменты, как grep, чем можно было бы сделать с печатной копией (т.е. сделанной из «мертвых деревьев», что в данном контексте является дисфемизмом для бумаги). [28]

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Керниган, Брайан (1984). Среда программирования Unix . Прентис Холл. стр. 102 . ISBN  0-13-937681-Х .
  2. ^ «Долгое время команда grep была моей частной командой, прежде чем я обнародовал ее». -Кен Томпсон. Архивировано 26 мая 2015 г. в Wayback Machine , Бенджамин Руальтанзаува, опубликовано 5 февраля 2014 г., Medium.
  3. ^ Хаубен и др. 1997, гл. 9.
  4. ^ Рэймонд, Эрик . "греп" . Файл жаргона . Архивировано из оригинала 17 июня 2006 г. Проверено 29 июня 2006 г.
  5. ^ Пол С. Даян (1992). OS-9 Guru-1: Факты . Галактика Индастриал Лимитед. ISBN  0-9519228-0-7 .
  6. ^ VCF East 2019 — Брайан Керниган берет интервью у Кена Томпсона (видео). Ютуб. 6 мая 2019 г. Архивировано из оригинала 11 декабря 2021 г. (35 минут)
  7. ^ Компьютерфил, Откуда взялся GREP , интервью с Брайаном Керниганом
  8. ^ "регулярные выражения" . perl.plover.com . Архивировано из оригинала 20 октября 2017 года . Проверено 24 апреля 2018 г.
  9. ^ «Как Grep получил свое имя» . robots. Thoughtbot.com . Архивировано из оригинала 9 августа 2017 года . Проверено 24 апреля 2018 г.
  10. ^ Jump up to: а б Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139. Архивировано (PDF) из оригинала 11 ноября 2017 г.
  11. ^ Абу-Ассале, Тони; Вэй Ай (март 2004 г.). Обзор инструментов глобальной печати регулярных выражений (GREP) (технический отчет). Университет Далхаузи.
  12. ^ Хьюм, Эндрю (1988). «Сказка о двух Грепах». Программное обеспечение: практика и опыт . 18 (11): 1063. doi : 10.1002/sp.4380181105 . S2CID   6395770 .
  13. ^ Меран, Жерар (12 сентября 1990 г.). Алгоритмы и сложность . Эльзевир Наука. п. 278. ИСБН  9780080933917 . Архивировано из оригинала 4 марта 2016 года . Проверено 12 декабря 2015 г.
  14. ^ "греп" . www.pubs.opengroup.org . Открытая группа. Архивировано из оригинала 28 ноября 2015 года . Проверено 12 декабря 2015 г.
  15. ^ "pgrep(1)" . www.linux.die.net . Архивировано из оригинала 22 декабря 2015 года . Проверено 12 декабря 2015 г.
  16. ^ "греп" . www.perldoc.perl.org . Архивировано из оригинала 7 декабря 2015 года . Проверено 12 декабря 2015 г.
  17. ^ «Справочная страница pcregrep» . www.pcre.org . Кембриджский университет. Архивировано из оригинала 23 декабря 2015 года . Проверено 12 декабря 2015 г.
  18. ^ "Грэп(1)" . www.linux.die.net . Архивировано из оригинала 10 декабря 2015 года . Проверено 12 декабря 2015 г.
  19. ^ Сполдинг, Джордж (2000). Администрирование Windows 2000 . Библиотека сетевого профессионала. Осборн/МакГроу-Хилл. стр. 634 . ISBN  978-0-07-882582-8 . Проверено 10 декабря 2010 г. QGREP.EXE[:] Инструмент, аналогичный grep в UNIX. Этот инструмент можно использовать для поиска текстовой строки.
  20. ^ «Руководство пользователя инструментов MSX-DOS2 от ASCII Corporation» . Апрель 1993 года.
  21. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
  22. ^ «Обзор: Adobe InDesign CS3 — CreativePro.com» . Creativepro.com . 20 апреля 2007 г. Архивировано из оригинала 5 января 2018 г. . Проверено 24 апреля 2018 г.
  23. ^ «Справка InDesign: найти/изменить» . Архивировано из оригинала 28 августа 2016 г. Проверено 12 августа 2016 г.
  24. ^ «InDesign: стили GREP (1) Установка текста в круглых скобках курсивом» . Архивировано из оригинала 24 сентября 2017 г. Проверено 5 января 2018 г.
  25. ^ «Справка InDesign: стили GREP» . Архивировано из оригинала 28 августа 2016 г. Проверено 12 августа 2016 г.
  26. ^ С. Ли Генри (июнь 1998 г.). «Правильный поиск». Эксперт Солнца . стр. 35–26.
  27. ^ «Список новых слов за декабрь 2003 г.» . Оксфордский словарь английского языка . Проверено 6 декабря 2021 г.
  28. ^ Файл жаргона , статья «Документация»
Примечания
  • Ален Маглуар (август 2000 г.). Grep: поиск шаблона . Iuniverse Inc. ISBN  0-595-10039-2 .
  • Хьюм, Эндрю Грепские войны: Инициатива стратегического поиска. Питер Коллинсон, редактор, Труды конференции EUUG Spring 88 , страницы 237–245, Бантингфорд, Великобритания, 1988. Европейская группа пользователей UNIX.
  • Майкл Хаубен ; и др. (апрель 1997 г.). Пользователи сети: об истории и влиянии Usenet и Интернета (перспективы) . Издательство компьютерного общества Wiley-IEEE. ISBN  978-0-8186-7706-9 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cb2d2cbb1e07822489ff81ea02bc14e0__1718073060
URL1:https://arc.ask3.ru/arc/aa/cb/e0/cb2d2cbb1e07822489ff81ea02bc14e0.html
Заголовок, (Title) документа по адресу, URL1:
grep - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)