У меня есть несколько html
файлов. В них есть кнопки доступа, установленные на next
и previous
страницу. Ссылки на эти 2 страницы помещаются в верхний и нижний колонтитулы. Из-за двуличности ключ доступа не работает должным образом (то есть, откройте страницу).
Решение заключается в удалении ссылок из заголовка. Заголовок записывается в одну строку, поэтому две ссылки, которые я хочу удалить, находятся во второй строке.
Поскольку он содержит имя файла, который должен быть открыт, мне нужно создать либо var
для этих имен файлов, либо какую-то другую, более сложную команду (следующую, которую я использую, чтобы переименовать все файлы в ###
{000.. 999}). Я не знаю, если следующий сложный cmd изменит имя вывода html
файлов (это не желательно)
$ ls *.html | awk 'BEGIN{ a=0 }{ printf "sed -i '2!b;s/<a accesskey="p" href="%s">Prev</a>/' *.html %s\n", $0, a++ }' | bash
Только sed
cmds (для ясности):
$ sed -i '2!b;s/<a accesskey="p" href="%s">Prev</a>/' *.html
$ sed -i '2!b;s/<a accesskey="n" href="%s">Next</a>/' *.html
Как это можно сделать? Я пробовал искать веб-сайты (возможно, я просто не знаю, как это описать), попробовал много команд со многими опциями, но я просто не могу это получить :)
Обновление # 2
Пример ввода
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><td width="20%" align="left"><a accesskey="j" href="contrastchapter.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Contrasts</th><td width="20%" align="right"> <a accesskey="k" href="ch03s02.html">Next</a></td></tr></table><hr/>
Примерный вывод того же
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><td width="20%" align="left"></td><th width="60%" align="center">Chapter 3. Contrasts</th><td width="20%" align="right"></td></tr></table><hr/>
Я не уверен, что вы пытаетесь сделать точно. Ваш пример оболочки не выполняется. Я думаю, вы хотите удалить, например,
<a accesskey="j" href="contrastchapter.html">Prev</a>
а также
<a accesskey="k" href="ch03s02.html">Next</a>
в строке 2 в ваших html файлах.
Если да, почему бы не попробовать
#!/bin/sh
ls *.html | while read line
do
sed -i ' 1,2 {
s:<a accesskey="j" href="[[:alnum:].]*">Prev</a>::
s:<a accesskey="k" href="[[:alnum:].]*">Next</a>::
}' $line
done
Я предполагаю, что имена файлов состоят из буквенно-цифровых символов или периода... Возможно, вам придется настроить это