sed, ganti di linux http: // cdn1 dengan https: // cdn1

8

Saya ingin mengganti http://cdn1.domain.comdengan https://cdn1.domain.com200 file .html dan saya tidak tahu bagaimana melakukannya dengan sed.

Dapatkah seseorang membantu saya dengan ini?

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.
sumber
1
Apa yang sudah Anda coba sejauh ini? Harap edit pertanyaan Anda dan sertakan apa yang telah Anda coba dan mengapa itu tidak berhasil.
EEAA
sed -i '/ http: / \ / \ cdn1 / http: / \ / \ cdn1 /' cum-comand.html sed: -e ekspresi # 1, char 8: perintah yang tidak diketahui: `\ 'sed -i' / http : \ / \ / cdn1 / http: \ / \ / cdn1 / 'cum-comand.html sed: -e ekspresi # 1, karakter 17: karakter tambahan setelah perintah
AndreiG.
Anda telah membalikkan garis miring dan garis miring terbalik.
Michael Hampton

Jawaban:

21

Jika mereka berada di direktori yang sama, Anda bisa melakukan ini:

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

Jika tidak, jalankan find:

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