添加

添加

我有一个包含一堆 html 文件的文件夹,我想添加一个

<h1>Filename without extension</h1>

标签后面的行<body>

我怎样才能写出一个脚本或一句话来

  1. 浏览文件夹中的每个文件
  2. 根据文件名创建 H1 标签,但不包含扩展名(例如:文件名为foobar.htmlreceived行<h1>foobar</h1>后有一行<body>
  3. 覆盖文件

答案1

下面是一个可以完成这个工作的小型 perl 脚本:

#!/usr/bin/perl
use strict;
use warnings;

# Retrieve all html files in an array
my @files = glob '*.html';
# "slurp" mode
undef $/;
# loop over all files
for my $file(@files) {
    # open file in read mode
    open my $fhi, '<', $file or die "Can't open '$file' for reading: $!";
    # retrieve content in a single string
    my $content = <$fhi>;
    close $fhi;
    # remove extension
    (my $without_ext = $file) =~ s/\.[^.]+$//; #/this is a comment for syntaxic color!
    # add h1 tag with filename
    $content =~ s~<body[^>]*>~$&\n<h1>$without_ext</h1>~s;
    # open same file in write mode
    open my $fho, '>', $file or die "Can't open '$file' for writing: $!";
    # write the modified string in the file
    print $fho $content;
}

相关内容