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