substitui o caminho do unix dentro de um arquivo

1

Eu tenho um arquivo sql de um banco de dados wordpress. Estou mudando para outro servidor cuja raiz do documento é diferente.

A raiz do documento antigo era /home/saeid/public_html

A nova raiz do documento é /home/saeid/www/domain.com/html

Eu quero substituir todas as ocorrências do caminho antigo por um novo caminho.

Eu vi este exemplo que substitui o foo pela barra ... mas como eu quero substituir o caminho que ele mesmo tem "/" caracteres nele ... Eu não tenho certeza se seria o trabalho. sed -i -e 's/foo/bar/g' filename

    
por Saeid Yazdani 01.02.2016 / 15:40

1 resposta

5

Use apenas um delimitador diferente:

sed -i 's|foo|bar|g' filename

Então, no seu caso:

sed -i 's|/home/saeid/public_html|/home/saeid/www/domain.com/html|g' file

Isso é mencionado em info sed :

The syntax of the s (as in substitute) command is ‘s/regexp/replacement/flags’. The / characters may be uniformly replaced by any other single character within any given s command. The / character (or whatever other character is used in its stead) can appear in the regexp or replacement only if it is preceded by a \ character.

    
por 01.02.2016 / 16:05