![每行放入一个文件中(XML 作为文件的一部分)](https://linux22.com/image/88708/%E6%AF%8F%E8%A1%8C%E6%94%BE%E5%85%A5%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%88XML%20%E4%BD%9C%E4%B8%BA%E6%96%87%E4%BB%B6%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%89.png)
以下是文件内容的示例:
<: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
。