以下是文件内容的示例:
<: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
。