Как Grep получил свое название? История создания Grep
Если вы пользователь Linux, вы, вероятно, встречали утилиту Grep со странным названием для поиска шаблонов в файлах или вывода команд по конвейеру. Вы можете задаться вопросом, откуда программа получила свое название.
В этой статье объясняется происхождение grep, а также приводится краткая информация о роли Grep в современной культуре Linux.
Истоки Grep в Bell Labs
Как и многие другие современные инструменты Linux, Grep является потомком исходной системы Unix, разработанной в Bell Labs в 1970-х годах.
Брайан Керниган, в то время ученый-компьютерщик Bell Labs, сейчас преподающий в Принстонском университете, объясняет происхождение Grep в видеоролике Computerphile.
Коллега Кернигана, Кен Томпсон, один из изобретателей Unix, помогал своему коллеге провести текстовый анализ «Записок федералиста» , которые были опубликованы под псевдонимом, чтобы определить авторство.
В начале 1970-х годов программисты Unix в Bell Labs имели Digital PDP-11, где 64 килобайта считались роскошью. Они также использовали медленные машины Teletype , которые использовали линейные редакторы для редактирования текста. Кен уже написал свою собственную программу, которая позволяла искать текст с помощью регулярных выражений.
Томпсон упаковал эти функции поиска по тексту в свою собственную утилиту. Поскольку эта утилита осуществляет глобальный поиск в строках регулярных выражений и выводит их на печать, она стала называться « G lobal R egular E xpression P rint» или просто Grep.
Керниган также взял интервью у Кена Томпсона на VCF East в 2019 году, и у Томпсона был забавный анекдот о создании grep . Босс Томпсона, Дуг Макилрой, обратился к нему с вопросом о необходимости использования программы для поиска по тексту. Томпсон обещал поработать над этим в одночасье, но на самом деле потратил всего около часа на исправление ошибок, так как он уже написал Grep и использовал его в частном порядке. На следующий день он представил его Макилрою. И остальное уже история.
Роль Grep в культуре Linux сегодня
Grep по-прежнему важен для современной культуры Linux, хотя Linux не использует код Unix. GNU Grep – это наиболее используемая версия Grep, поскольку она предустановлена почти в каждом дистрибутиве Linux.
Вы можете использовать Grep для поиска текстового шаблона в файле:
grep pattern file
Или вы можете искать шаблоны в конвейерном выводе:
ps | grep '.*sh'
Команда ps печатает все процессы, которые в данный момент запущены в системе. Grep будет искать в выводе строки, за которыми следует sh , или, на практике, запуск оболочки.
Начиная с нормализации электронной документации, программисты предпочитают иметь утилиту, которая позволяет им искать шаблоны в текстовых файлах. Они даже ссылаются на отсутствие поиска в печатных документах, шутливо говоря: «Вы не можете найти мертвые деревья». Они также назвали физический поиск чего-либо визуальным grep или vgrep . Это показывает, насколько Grep пронизывает современный Linux и культуру информатики в целом.
Выходи и Grep!
Теперь, когда вы знаете, откуда взялось имя Grep, вы сможете самостоятельно использовать Grep для некоторых замечательных вещей, расширяя свои знания о Linux.
Grep – одна из многих команд, которые помогут вам освоиться с Linux. Изучение новых команд должно иметь первостепенное значение, если вы решили использовать Linux в качестве основной операционной системы.