【发布时间】:2019-05-09 21:46:35
【问题描述】:
我必须添加一个字段来显示文件中两个字段之间的百分比差异,例如:
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
只打印文件。
【问题讨论】: