这些 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
在你的文件准备好之后,上面的第二个命令就可以放在页眉和页脚上。
有点啰嗦,但重点是您应该能够通过编写一些脚本轻松地处理这个问题。