大容量のテキストファイルで複数の単語を置き換えるには、sedまたはawkのどちらが最善ですか? [閉鎖]

大容量のテキストファイルで複数の単語を置き換えるには、sedまたはawkのどちらが最善ですか? [閉鎖]

大きなテキストファイルに置き換えたい単語のリストがあります。これを行うのに最適なsed / awkコマンドが何であるかを知りたいです。 sed / awkはテキストファイルを1行ずつ読みますか、それともファイル全体をメモリにロードしますか?

答え1

答えは明らかです。時によって異なります。

  1. 「最高」をどのように定義するかによって異なります。急いで?書くのは簡単ですか?読む?保つ?もっと持ち運びできますか?もっとエレガントに?

  2. 特定のタスクによって異なります。sedr-31415がコメントで主張したように、一般的には高速ですが、置換が定義される方法(単語がどのように制限されるのか、単語の一部が一致するか)によっては、限られた可能性があるため、少しの操作が必要になる場合がありsedますawk

  3. 実装によって異なります。両方のコマンドは、置換のために正規表現を使用して1行ずつ動作するため、正規表現エンジンが実行速度を決定する可能性が高くなります。どのくらい最適化されていますか?プリコンパイルされたモードを使用しますか?実行しているハードウェアによって異なる場合があります。 BSD実装はARMでより速く実行され、GNU実装はAMD64でより速く実行されます。

反対の質問をお送りします。なぜ知りたいですか?

関連情報