![Como substituo uma string em um arquivo grande?](https://rvso.com/image/1048330/Como%20substituo%20uma%20string%20em%20um%20arquivo%20grande%3F%20.png)
Estou tendo um grande arquivo de despejo SQL do WordPress no meu servidor Ubuntu, que tem cerca de 7 GB. Como estou alterando o domínio, preciso substituir o nome do domínio no arquivo. Quero saber como fazer isso via linha de comando.
dev.example.com
Precisa substituir por
example.com
Responder1
você pode usar sed com edição local
sed -i -e 's/dev\.example\.com/example\.com/g' filename
Responder2
Não sei o quão rigorosa sed
é sua tag, mas é uma maneira universal de substituir string(s) em um arquivo pelo comando:
<script> <file> <old_string> <new_string>
você poderia usar o pequeno script python abaixo:
#!/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 o script em um arquivo vazio, salve-o como replace.py
executável (para executá-lo sem python3
prefixo), execute-o pelo comando:
/path/to/replace.py /path/to/file dev.example.com example.com
Caso old_string ou new_string contenham espaços, use aspas:
/path/to/replace.py /path/to/file 'old string with spaces' 'new string with spaces'