sed, remplacez sous linux http: // cdn1 par https: // cdn1

8

Je veux le remplacer http://cdn1.domain.compar https://cdn1.domain.com200 fichiers .html et je ne sais pas comment le faire avec sed.

Quelqu'un peut-il m'aider avec ça?

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.
la source
1
Qu'est-ce que tu as essayé jusque-là? Veuillez modifier votre question et inclure ce que vous avez essayé et pourquoi cela n'a pas fonctionné.
EEAA
sed -i '/ http: / \ / \ cdn1 / http: / \ / \ cdn1 /' cum-comand.html sed: -e expression # 1, char 8: commande inconnue: `\ 'sed -i' / http : \ / \ / cdn1 / http: \ / \ / cdn1 / 'cum-comand.html sed: -e expression # 1, caractère 17: caractères supplémentaires après la commande
AndreiG.
Vous avez inversé vos barres obliques et vos contre-obliques.
Michael Hampton

Réponses:

21

S'ils se trouvent dans le même répertoire, vous pouvez simplement faire ceci:

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

Sinon, lancez find:

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