Каждая строка в файл (XML как часть файла)

Каждая строка в файл (XML как часть файла)

Вот пример содержимого файла:

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

XML-контент довольно тяжелый и большой.

В каталоге, в котором я работаю, я хочу создать подкаталог XYZ(второй столбец), если его там нет, и в этом подкаталоге создать файл 1122.raw(третий столбец) и добавить XML-содержимое ( <:abc>test file name <:/abc>) в этот файл.

решение1

Комментарий @MelBurslan верен, в общем случае не стоит ожидать, что люди будут писать скрипты для вас, поскольку StackExchange не для этого. Но в этом случае у меня было немного времени: вот один скрипт, который делает то, о чем говорится в вопросе, предполагая, что XML не содержит никаких новых строк, а части подкаталога и имени файла не содержат никаких специальных символов:

#!/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;

Сохраните его как process.plи запустите ./process.pl inputfile.xml.

Связанный контент