sed – Reemplazar texto rápidamente en archivos muy grandes

Pregunta:

Tengo un archivo de texto de 25 GB que necesita una cadena reemplazada en solo unas pocas líneas. Puedo usar sed éxito, pero lleva mucho tiempo ejecutarlo.

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

¿Existe una forma más rápida de hacer esto?

Respuesta:

Puedes probar:

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

De esta ref :

OPTIMIZANDO LA VELOCIDAD: Si se necesita aumentar la velocidad de ejecución (debido a archivos de entrada grandes o procesadores lentos o discos duros), la sustitución se ejecutará más rápidamente si se especifica la expresión "buscar" antes de dar "s /…/". ../" instrucción.

Aquí hay una comparación sobre un archivo 10G. Antes:

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

Después:

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

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım