Перевести имена файлов в ссылках в нижний регистр

user230755

Есть локальная копия сайта (вернее, html-книга), которую писал очень "талантливый" человек.

Экспериментировал с именами файлов как на диске, так и в html-файлах. Ну а то, что имена иногда не совпадают, в этом ничего страшного нет, IE открывал все спокойно и красиво.

А теперь мне все это надо запустить под lighttpd, который регистр символов различать умеет.

Собственно вопрос: как этот бардак поправить?

То есть как привести все имена файлов и директорий в нижний регистр. Или в html-файлах хотя бы.

Ссылки имеют вид

<td> 
</td>
1 ответ

user230755

исхожу из того, что:

  • резервная копия есть
  • текущим каталогом является «корень» «документа»
  • ссылки представлены в виде: href="ссылка" и src="ссылка"
  • внешних ссылок нет

в вопросе два подвопроса:

  1. переименование файлов и каталогов. это можно осуществить комбинацией из программ find и prename:

    $ find -depth | prename 's,([^/]+)$,\L$1,'
  2. исправление содержимого файлов. это можно осуществить комбинацией из программ find, xargs и sed:

    $ find -type f -iname \*.html | xargs sed -ri 's/ (src|href)="([^"]+)"/ \1="\L\2"/'

licensed under cc by-sa 3.0 with attribution.