![¿Cómo reemplazo una cadena en un archivo grande?](https://rvso.com/image/1048330/%C2%BFC%C3%B3mo%20reemplazo%20una%20cadena%20en%20un%20archivo%20grande%3F%20.png)
Tengo un gran archivo de volcado SQL de WordPress en mi servidor Ubuntu, que pesa alrededor de 7 GB. Como estoy cambiando de dominio, necesito reemplazar el nombre de dominio en el archivo. Quiero saber cómo hacerlo a través de la línea de comando.
dev.example.com
Necesita reemplazar con
example.com
Respuesta1
puedes usar sed con edición in situ
sed -i -e 's/dev\.example\.com/example\.com/g' filename
Respuesta2
No sé qué tan estricta sed
es su etiqueta, pero existe una forma universal de reemplazar cadenas en un archivo mediante el comando:
<script> <file> <old_string> <new_string>
podrías usar el pequeño script de Python a continuación:
#!/usr/bin/env python3
import sys
file = sys.argv[1]; old_string = sys.argv[2]; new_string = sys.argv[3]
with open(file) as src:
lines = src.read()
print(lines.replace(old_string, new_string))
Copie el script en un archivo vacío, guárdelo como replace.py
ejecutable (para ejecutarlo sin python3
prefijo), ejecútelo con el comando:
/path/to/replace.py /path/to/file dev.example.com example.com
En caso de que cadena_antigua o cadena_nueva tengan espacios, utilice comillas:
/path/to/replace.py /path/to/file 'old string with spaces' 'new string with spaces'