você pode usar sed com edição no local
sed -i -e 's/dev\.example\.com/example\.com/g' filename
Estou tendo um grande arquivo de despejo SQL do WordPress no meu servidor Ubuntu, que tem cerca de 7 GB. Como estou mudando de domínio, preciso substituir o nome do domínio no arquivo. Eu quero saber como fazer isso via linha de comando.
dev.example.com
Precisa ser substituído por
example.com
você pode usar sed com edição no local
sed -i -e 's/dev\.example\.com/example\.com/g' filename
Eu não sei quão estrita é a sua tag sed
, mas uma maneira universal de substituir string (s) em um arquivo pelo comando:
<script> <file> <old_string> <new_string>
você pode usar o minúsculo 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
para torná-lo executável (para executá-lo sem python3
prefix), execute-o pelo comando:
/path/to/replace.py /path/to/file dev.example.com example.com
No caso de old_string ou new_string ter espaços, use aspas:
/path/to/replace.py /path/to/file 'old string with spaces' 'new string with spaces'