UNIX コマンドについてさらに学習するにつれて、仕事で sed を使い始めました。Sed の設計では、ファイルを 1 行ずつ読み取り、各行で個別にコマンドを実行します。
grep はどのようにファイルを処理しますか? 「grepは1行ずつ処理しますか」というさまざまな方法でグーグルを試しましたが、実際には具体的なものは何も表示されません。
さらに、GNU grep は入力を行に分割することを回避します。改行を探すと、grep の速度が数倍遅くなります。改行を見つけるには、すべてのバイトを調べなければならないからです。
その後
- 一致するものが見つかるまで、入力内の改行を探さないでください。
grep に渡す正規表現には、改行を指定する方法がありません (ただし、行頭または行末に対して一致を指定することはできます)。
そのため、実際には行末を他の文字とは異なる方法で処理しない場合でも、行ごとに機能するように見えます。