Adicione uma tag h1 do nome do arquivo no Linux

0

Eu tenho uma pasta com vários arquivos html e desejo adicionar uma

<h1>Filename without extension</h1>

linha logo após a tag <body> .

Como eu poderia ter um roteiro ou uma frase que

  1. Analise cada arquivo na pasta
  2. Crie a tag H1 com base no nome do arquivo, mas sem a extensão (exemplo: o arquivo chamado foobar.html recebeu uma linha <h1>foobar</h1> após a linha <body>
  3. Substituir os arquivos

?

    
por To Do 26.07.2018 / 11:51

1 resposta

0

Aqui está um pequeno script em perl que faz o trabalho:

#!/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;
}
    
por 26.07.2018 / 12:33