Cada linha em um arquivo (XML como parte do arquivo)

Cada linha em um arquivo (XML como parte do arquivo)

Aqui está um exemplo do conteúdo do arquivo:

<:abc>test file name <:/abc>   XYZ  1122

O conteúdo XML é muito pesado e grande.

No diretório em que estou trabalhando, quero criar um subdiretório XYZ(segunda coluna), se não estiver lá, e nesse subdiretório criar o arquivo 1122.raw(terceira coluna) e adicionar o conteúdo XML ( <:abc>test file name <:/abc>) a esse arquivo.

Responder1

O comentário de @MelBurslan está correto, em geral você não deve esperar que as pessoas escrevam scripts para você, pois não é para isso que serve o StackExchange. Mas neste caso, tive algum tempo: aqui está um script que faz o que a pergunta pede, assumindo que o XML não contém novas linhas e que as partes do subdiretório e do nome do arquivo não contêm caracteres especiais:

#!/usr/bin/perl -n

my $nameRE = qr/[\w.]+/;

chomp;
m/^(.*)\s+($nameRE)\s+($nameRE)\s*$/ or do { warn "didn't match line $.: $_\n"; next };
my ( $xml, $dir, $line ) = ( $1, $2, $3 );

mkdir $dir;
open my $f, ">>", "$dir/$line.raw";
print $f "$xml\n";
close $f;

Salve como process.ple execute ./process.pl inputfile.xml.

informação relacionada