У меня есть куча html-файлов, и во всех тегах img слеши стоят неправильно!
Вот пример (за исключением того, что это одна строка кода, разделенная здесь для удобства просмотра)
<a href=index.html><img src="images\homereg.png" /></a>
<img src="images\spacer.png" />
<a href=dogs.html><img src="images\dogsreg.png" /></a>
<img src="images\spacer.png" />
<a href=litters.html><img src="images\littersreg.png" /></a>
<img src="images\spacer.png" />
<a href=bredby.html><img src="images\bredbyreg.png" /></a>
<img src="images\spacer.png" />
<a href=contact.html><img src="images\contactreg.png" /></a>
Проблема с тем, что я пробовал до сих пор, заключается в том, что sed жадный, поэтому он сопоставляет слишком много и не заменяет правильно. Что-то вроде sed -i 's|images\\\(.*\)\"|images/\1\"|g' *
will replace one per line, это сопоставляет слишком много. Я пробовал и другие вещи, но все в том же духе, что и это.
Какое самое простое решение? Я не ограничен sed, просто я его лучше знаю, поэтому я его и пробовал.
решение1
Проверьте, работает ли это для вас
sed "s/images\\\/images\\//g"
решение2
Не используйте регулярные выражения. Просто замените все вхождения images\
на images/
.
Все основные текстовые редакторы должны это поддерживать.
Если вы хотите использовать sed
:
sed 's|images\\|images/|g' filename.html