sed, substitua no linux http: // cdn1 por https: // cdn1

8

Quero substituir http://cdn1.domain.compor https://cdn1.domain.com200 arquivos .html e não sei como fazer isso com o sed.

Alguém pode me ajudar com isso?

sed -i '/http:/\/\cdn1/http:/\/\cdn1/' cum-comand.html
sed: -e expression #1, char 8: unknown command: `\'

sed -i '/http:\/\/cdn1/http:\/\/cdn1/' cum-comand.html
sed: -e expression #1, char 17: extra characters after command
AndreiG.
fonte
1
O que você tentou até agora? Edite sua pergunta e inclua o que você tentou e por que não funcionou.
EEAA
sed -i '/ http: / \ / \ cdn1 / http: / \ / \ cdn1 /' cum-comando.html sed: -e expressão # 1, caractere 8: comando desconhecido: `\ 'sed -i' / http : \ / \ / cdn1 / http: \ / \ / cdn1 / 'cum-comando.html sed: -e expressão # 1, caractere 17: caracteres extras após o comando
AndreiG.
Você inverteu suas barras e barras invertidas.
Michael Hampton

Respostas:

21

Se eles estiverem no mesmo diretório, você pode fazer isso:

sed -i 's|http://cdn1.domain.com|https://cdn1.domain.com|g' *.html

Caso contrário, execute find:

find . -name "*.html" -exec sed -i 's|http://cdn1.domain.com|https://cdn1.domain.com|g' {} \;
Jakov Sosic
fonte