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.pl
e execute ./process.pl inputfile.xml
.