January 2024
Intermediate to advanced
472 pages
5h 56m
Japanese
なぜそんな顔をしているのか説明して?
—— They Might Be Giants, "Unrelated Thing" (1994)
本章では、grepコマンドのRust版を実装し、与えられた正規表現にマッチする行を検索できるようにします†1。デフォルトでは、入力は標準入力から与えられますが、複数のファイルを与えたり、再帰オプションを指定すればディレクトリ名を与えてディレクトリ内のファイルを検索することもできます。通常は与えられたパターンにマッチする行を出力しますが、マッチしない行やマッチした行数を出力することもできます。さらに、通常のパターンマッチでは大文字と小文字を区別しますが、オプションを指定して区別しないようにすることもできます。オリジナルのgrepには、ほかにもさまざまな機能がありますが、今回はここで説明した機能だけを実装します。
[†1] grepという名前は標準テキストエディタであるedコマンドのg/re/pに由来します。ちなみに、g/re/pは「global regular expression print」という意味です。
本章では、以下の内容を学びます。
[†2] 訳注:「trait bound」の訳に関しては議論があるが、本書では「トレイト境界」とする。
まずは、BSD版のgrepコマンドのマニュアルページを見て、どれだけ多くのオプションがあるか確認しましょう。
GREP(1) BSD General Commands Manual GREP(1) ...