Grepはどのようにしてその名前を付けましたか? Grepの作成の背後にある歴史

Linuxユーザーの場合、ファイル内のパターンやコマンドからのパイプ出力を検索するために、奇妙な名前のGrepユーティリティに出くわした可能性があります。プログラムの名前はどこにあるのか不思議に思うかもしれません。

この記事では、grepの起源を、現代のLinux文化におけるGrepの役割に関する簡単な情報とともに説明します。

ベル研究所でのGrepの起源

他の多くの最新のLinuxツールと同様に、Grepは1970年代にベル研究所で開発された元のUnixシステムの子孫です。

当時プリンストン大学で教鞭をとっていたベル研究所のコンピューター科学者であるブライアン・カーニハンは、ComputerphileのビデオでGrepの起源について説明しています。

カーニハンの同僚であるUnixの発明者の1人であるケントンプソンは、同僚がペンネームで発行されたフェデラリストペーパーのテキスト分析を行って著者を決定するのを手伝っていました。

1970年代初頭、ベル研究所のUnixプログラマーは64キロバイトが豪華であると考えられていたデジタルPDP-11を持っていました。彼らはまた、テキストを編集するためにラインエディタを利用する遅いテレタイプマシンを使用しました。ケンは、正規表現を使用したテキスト検索を可能にする独自のプログラムをすでに作成していました。

Thompsonは、これらのテキスト検索機能を独自のユーティリティにパッケージ化しました。このユーティリティは、正規表現の行をグローバルに検索して出力するため、「 G lobal R egular E xpression P rint」、または単にGrepになりました。

Kernighanは2019年にVCFEastでKenThompsonにもインタビューし、Thompsonはgrepの作成について面白い逸話を持っていました。 Thompsonの上司であるDougMcIlroyは、テキスト検索ユーティリティの必要性について彼にアプローチしました。 Thompsonは一晩で作業することを約束しましたが、すでにGrepを作成していて個人的に使用していたため、バグの修正に実際に費やした時間は約1時間でした。彼は翌日それをマキロイに提示した。そして残りは歴史です。

関連: UnixとLinux:違いとそれが重要な理由

今日のLinux文化におけるGrepの役割

LinuxはUnixコードを使用していませんが、Grepは現代のLinux文化にとって依然として重要です。 GNU Grepは、ほとんどすべてのLinuxディストリビューションにプリインストールされているため、Grepの最も使用されているバージョンです。

Grepを使用して、ファイル内のテキストパターンを検索できます。

 grep pattern file

または、パイプ出力でパターンを検索できます。

 ps | grep '.*sh'

psコマンドは、システムで現在実行されているすべてのプロセスを出力します。 Grepは、出力内でshが続く行、または実用的な用語で実行中のシェルを検索します。

電子ドキュメントの正規化以降、プログラマーはテキストファイル内のパターンを検索できるユーティリティを使用することを好みます。彼らは、「枯れ木をgrepすることはできません」とユーモラスに言って、印刷されたドキュメントの検索の欠如にさえ言及しています。彼らはまた、物事を物理的に検索する行為を視覚的なgrepまたはvgrepと呼んでいます。これは、Grepが現代のLinuxと一般的なコンピュータサイエンス文化にどれだけ浸透しているかを示しています。

関連: LinuxおよびmacOSでmanページを読みやすい説明に短縮する方法

出て行ってGrep!

Grepの名前の由来がわかったので、Linuxの知識を深めながら、自分でいくつかのすばらしいことをGrepできるようになります。

Grepは、Linuxに慣れるために役立つ多くのコマンドの1つです。 Linuxをメインのオペレーティングシステムとして使用することにした場合は、新しいコマンドを学ぶことが最も重要です。