Я должен добавить поле, показывающее разницу в процентах между двумя полями в файле, например:
BI,1266,908
BIL,494,414
BKC,597,380
BOOM,2638,654
BRER,1453,1525
BRIG,1080,763
DCLE,0,775
Выходные данные должны быть:
BI,1266,908,-28.3%
BIL,494,414,-16.2%
BKC,597,380,-36.35%
BOOM,2638,654,-75.2%
BRER,1453,1525,5%
BRIG,1080,763,-29.4%
DCLE,0,775,-
Обратите внимание на ноль впоследний рядЛюбое из этих полей может быть нулевым.Если в каком-либо поле присутствует ноль, N / A или - приемлемо.
То, что я пытаюсь -
Perl:
perl -F, -ane 'if ($F[2] > 0 || $F[3] > 0){print $F[0],",",$F[1],",",$F[2],100*($F[2]/$F[3])}' file
Я получаю Illegal division by zero at -e line 1, <> line 2.
Если я изменю ||
на &&
, он ничего не печатает.
В awk:
awk '$2>0{$4=sprintf("%d(%.2f%)", $3, ($3/$2)*100)}1' file
Просто печатает файл.