大きなテキストファイルに置き換えたい単語のリストがあります。これを行うのに最適なsed / awkコマンドが何であるかを知りたいです。 sed / awkはテキストファイルを1行ずつ読みますか、それともファイル全体をメモリにロードしますか?
答え1
答えは明らかです。時によって異なります。。
「最高」をどのように定義するかによって異なります。急いで?書くのは簡単ですか?読む?保つ?もっと持ち運びできますか?もっとエレガントに?
特定のタスクによって異なります。
sed
r-31415がコメントで主張したように、一般的には高速ですが、置換が定義される方法(単語がどのように制限されるのか、単語の一部が一致するか)によっては、限られた可能性があるため、少しの操作が必要になる場合がありsed
ますawk
。実装によって異なります。両方のコマンドは、置換のために正規表現を使用して1行ずつ動作するため、正規表現エンジンが実行速度を決定する可能性が高くなります。どのくらい最適化されていますか?プリコンパイルされたモードを使用しますか?実行しているハードウェアによって異なる場合があります。 BSD実装はARMでより速く実行され、GNU実装はAMD64でより速く実行されます。
反対の質問をお送りします。なぜ知りたいですか?