Эти HTML-страницы написаны довольно стандартными способами? Если вы знаете, что вам нужно удалить первые X строк сверху и Y строк снизу, вы можете использовать следующую командную строку unix для подготовки файлов (если, например, все они называются file01.html, file02. html и т. д.):
for i in file*.html; do head -n -X $i | tail +Y > $i.stripped; done
Тогда вы можете иметь стандартные заголовки и нижние колонтитулы в файлах с соответствующими именами и выполнить команду, подобную:
for i in num*.stripped; do cat header $i footer > $i.sharepoint; done
Эти две команды заменят первые X строк файла содержимым файла с именем header
, а последние Y строк файла содержимым footer
и поместят их в файлы с именем file01.html. stripped.sharepoint готов к перемещению (и переименованию).
Если это не сработает, но вы знаете, что все строки выше или ниже определенной строки текста должны быть обрезаны, то вы можете использовать этот скрипт (вставленный в файл с именем «trim») для выполнения первой подготовительной задачи. :
#!/usr/bin/perl
my $direction = shift;
my $r = shift;
my $file = shift;
open(FILE,"<",$file) or die 'could not open file ' . $file;
my $matched = 0;
while(<FILE>) {
$matched ||= m/$r/;
if ($direction eq 'before') {
next if not $matched;
} else {
last if $matched;
}
print;
}
Первый аргумент - это направление, которое вы хотите вырезать, второй - строка (в форме регулярного выражения), а третий - имя файла:
Беги как:
perl trim after '^STRING$' file.html
и для всех файлов:
for i in file*.html; do perl trim after '^STRING$' $i > $i.stripped_header; done
После того, как ваши файлы подготовлены, вторая команда сверху для добавления заголовка и нижнего колонтитула будет всем, что необходимо.
Немного затянуто, но дело в том, что вы сможете легко справиться с этим с помощью небольшого сценария.