Вот пример содержимого файла:
<: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
.