Введите следующий код в calc_rh.pl
:
#!/usr/bin/perl
while (<>) {
chomp;
@f = map { /^\"(.*)\"$/ ? $1 : $_ } split /,/; # Strips double quotes if present
($Tc, $Tdc) = @f[8, 9]; # Assuming Tc in column 9, Tdc in column 10
$Es=6.11*10.0** (7.5*$Tc/ (237.7+$Tc));
$E=6.11*10.0** (7.5*$Tdc/ (237.7+$Tdc));
$RH = sprintf "%.2f", $E/$Es*100; # Or use e.g. "%.4f" for 4 digits after d.p.
print join(",", map { "\"$_\"" } @f, $RH), "\n";
}
Запуск с:
perl calc_rh.pl < infile.csv > outfile.csv
ПРИМЕЧАНИЕ. Приведенный выше код не работает, если какой-либо из столбцов содержит запятую. Это можно исправить с помощью загружаемых модулей, но у меня такое ощущение, что вам просто нужен быстрый скрипт.
Кроме того, если вы работаете в Linux, вам может потребоваться запустить:
perl ./calc_rh.pl < infile.csv > outfile.csv
вместо.