2

У меня есть куча 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' * заменит по одному в строке, это слишком много. Я пробовал некоторые другие вещи, но все по той же схеме, что и эта.

Какое самое простое решение? Я не ограничен sed, я просто знаю это лучше, так что это то, что я пытался.

2 ответа2

3

Проверьте, работает ли это для вас

sed "s/images\\\/images\\//g"
2

Не используйте регулярные выражения. Просто замените все вхождения images\ на images/ .

Все основные текстовые редакторы должны поддерживать это.

Если вы хотите использовать sed:

sed 's|images\\|images/|g' filename.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .