tl; dr:
После четырех часов попыток я уже не ближе, чем был, когда начинал.
Я пытаюсь добавить .html
в конец всех ссылок (у которых нет другого расширения) во многих HTML-документах.См. Два примера ссылок ... ниже для примера того, что я собираюсь сделать.
Основной пост:
У меня есть большая коллекция файлов HTML,и я пытаюсь «исправить» ссылки, сделать их внутренними ссылками, чтобы все работало в автономном режиме.(Я делаю это так, чтобы моя сестра могла пользоваться сайтом в автономном режиме во время подготовки к экзамену).Сайт больше не в сети.
Мне удалось выполнить некоторые из них (с помощью простой команды SED
), но я полностью застрял с большинством.
Два основныхЯ должен внести следующие изменения:
- Добавление .html в конец всех ссылок , которые еще не имеют расширения (некоторые уже имеют.html, а некоторые имеют .js, .mp4 или другие расширения, которые не нужно менять)
- Изменение https:// на .. / .. / .. / (или больше для файлов глубже в дереве каталогов)
Второй шаг будет легким (я использую find с maxdepth mindepth , чтобы определить, насколько глубоко файл находится вдерево каталогов, а затем что-то вроде sed 's/https:\\/../../..//g'
), однако я хочу сделать эту секунду, потому что я предполагаю, что https облегчит поиск ссылок, которые нужно .html
добавить в конце).
Большинство ссылок в тегах href, но не во всех.
Я думаю, мне придется использовать какое-то регулярное выражение SED, и потомуИспользовать разные ссылки нужно по-разному, возможно многократные прогоны САС.Но SED на самом деле не моя специальность.
Два примера ссылок ...
pagespeed.addInstrumentationInit('/mod_pagespeed_beacon', 'beforeunload', '', 'https://www.example.com/learners/levels/2/lessons/13/stories/1','IF77dLwFOP',true,false,'ikd272iAGio');
необходимо изменить на:
pagespeed.addInstrumentationInit('/mod_pagespeed_beacon', 'beforeunload', '', ../../../www.example.com/learners/levels/2/lessons/13/stories/1.html','IF77dLwFOP',true,false,'ikd272iAGio');
<a href="https://www.example.com/learners">Home</a> <ul>
должно быть:
<a href="../../../www.example.com/learners.html">Home</a> <ul>
Где я дошел до сих пор
Как уже упоминалось выше, я знаю, как я собираюсь сделать второй шаг, но после четырех часов попытокЯ не очень далеко продвинулся с первого шага.grep -Poh 'https://www.example[^"]*'
печатает список URL, но я не вижу, как это было бы полезно.Я просто не могу понять, как заставить SED
разместить .html
в нужных местах.
Любые советы будут с благодарностью!