每行放入一个文件中(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

相关内容