非常に大きなファイルのテキストをすばやく置き換える

非常に大きなファイルのテキストをすばやく置き換える

25GBのテキストファイルがありますが、数行の文字列を変更するだけです。正常に使用できますが、sed実行に時間がかかります。

sed -i 's|old text|new text|g' gigantic_file.sql

これを行うより速い方法がありますか?

ベストアンサー1

あなたは試すことができます:

sed -i '/old text/ s//new text/g' gigantic_file.sql

したがって、引用する:

速度の最適化:実行を高速化する必要がある場合(入力ファイルが大きい場合、またはプロセッサまたはハードディスクが遅い場合)、「s / ... / .find」式が提供される前に「find」式が指定されている場合、置換はより速く行われます。 ../"指示。

10Gファイルの比較です。今後:

$ time sed -i 's/original/ketan/g' wiki10gb
real    5m14.823s
user    1m42.732s
sys     1m51.123s

後ろに:

$ time sed -i '/ketan/ s//original/g' wiki10gb
real    4m33.141s
user    1m20.940s
sys     1m44.451s

おすすめ記事