Tengo un gran archivo de texto (aproximadamente 2 GB). Quiero hacer cinco acciones de búsqueda y reemplazo en el mismo archivo, y me gustaría hacerlo en un comando. Normalmente uso vim, abro el archivo, hago una acción de reemplazo, luego la siguiente, etc. Hay un problema, ya que noté que después de tres o cuatro búsquedas, vim falla debido a problemas de memoria.
Aquí hay dos ejemplos del comando que uso en Vim:
:%s/www\.abcdef/www.test.abcdef/g
:%s/www\.klmnop/www.test.klmnop/g
¿Cuál es la mejor manera de manejar esto?
linux
vim
sed
find-and-replace
SPRBRN
fuente
fuente
sed
. Lo intenté y funciona. Hay un buen hilo en Unix y Linux Stackexchange , y la respuesta aceptada no menciona los puntos como caracteres para escapar.Si tiene muchos más patrones de búsqueda, puede guardarlos en un archivo y leer las sustituciones desde allí. Por ejemplo, digamos que estos son los contenidos de
replacements.txt
:Luego puede leer una lista de N reemplazos y reemplazarlos con esto:
NOTAS
replacements.txt
.sed
por reemplazo, lo que puede llevar un tiempo si tiene muchas operaciones de reemplazo.Otra opción sería escribir lo anterior como un
sed
script:Luego puede ejecutar el script en su archivo y hará todos los reemplazos de una vez:
fuente