sed, замените в Linux http: // cdn1 на https: // cdn1

8

Я хочу , чтобы заменить http://cdn1.domain.comс https://cdn1.domain.comв 200 файлов .html , и я не знаю , как сделать это с помощью СЭД.

Может ли кто-нибудь помочь мне с этим?

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.
источник
1
что ты уже испробовал? Пожалуйста, измените свой вопрос и укажите, что вы пробовали и почему это не сработало.
EEAA
sed -i '/ http: / \ / \ cdn1 / http: / \ / \ cdn1 /' cum-comand.html sed: -e выражение # 1, символ 8: неизвестная команда: `\ 'sed -i' / http : \ / \ / cdn1 / http: \ / \ / cdn1 / 'cum-comand.html sed: -e выражение # 1, символ 17: дополнительные символы после команды
AndreiG.
Вы полностью изменили свои косые и обратные слеши.
Майкл Хэмптон

Ответы:

21

Если они находятся в одном каталоге, вы можете просто сделать это:

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

Если нет, запустите find:

find . -name "*.html" -exec sed -i 's|http://cdn1.domain.com|https://cdn1.domain.com|g' {} \;
Яков Сосич
источник