【发布时间】:2011-04-26 07:00:12
【问题描述】:
文件 monday.csv
223.22;1256.4
227.08;1244.8
228.08;1244.7
229.13;1255.0
227.89;1243.2
224.77;1277.8
文件 tuesday.csv
227.02;1266.3
227.09;1234.9
225.18;1244.7
224.13;1255.3
228.59;1263.2
224.70;1247.6
这个 Perl 单行器从文件“monday.csv”中的第一列中的前三位是 227 或 226 的行中为我提供第二列中具有最高值的行:
perl -F\; -ane '$hash{$_} = $F[1] if /22[78]/; END{ print and exit for sort{ $hash{$b} <=> $hash{$a} } keys %hash }' monday.csv
这个 Perl 单行器在第一列中的所有 *day.csv 文件中的前 3 位数字为 227 或 226 的行中为我提供第二列中具有最高值的行:
perl -F\; -ane '$hash{$_} = $F[1] if /22[78]/; END{ print and exit for sort{ $hash{$b} <=> $hash{$a} } keys %hash }' *day.csv
我怎样才能重写这个单行以获得类似的输出
filename : "文件 'filename.csv' 中第一列前 3 位为 227 或 226 的行中第二列中具有最高值的行"
对于每个*day.csv 文件?
【问题讨论】:
标签: perl command-line-arguments argv