我有一个包含以下信息的 XML 文件:
<Key Time="54288" Type="insert" Value="E" />
<Key Time="55288" Type="insert" Value="A" />
<Key Time="58298" Type="insert" Value="O" />
我需要计算每个键条目之间的总暂停持续时间,但只有当暂停(一个“时间”和另一个之间的间隔)等于或高于 2400 时。有人可以帮我用 Perl 脚本吗?
使用xsh,一个围绕XML::LibXML的包装器:
open data.xml ;
for //Key[preceding-sibling::Key] {
$pause = @Time - preceding-sibling::Key[1]/@Time ;
if ($pause >= 2400) echo $pause ;
}
输出:
3010
这个“单线”怎么样
perl -nle '
/<Key +Time\s*=\s*"([0-9]+)\s*"/ and push @nums,$1;
END{
for(1..$#nums){
$pause=$nums[$_]-$nums[$_-1];
$pause >=2400 ? print "$pause started at ".$nums[$_-1] : ()
}
}' your_file_here > output_file
这会将程序的输出保存到文件output_file
中。您可以使用任何电子表格软件打开此文件,它会自动知道将输出放在一个表格列中。