首页 > 解决方案 > 如何克服 awk 中的“(文件名 = - FNR = 1)致命:除零尝试”错误

问题描述

我有一个 10 列的文本文件,我需要对其进行一些数学处理。例如,当我发出以下命令时

cat case.dat | awk '{print ($1-0.777472), ($1*$2*$3*$4)/($10)}'

然后我得到以下错误

awk: cmd. line:1: (FILENAME=- FNR=1) fatal: division by zero attempted

并且脚本没有给出任何输出。

这意味着我有一些zero's参与$8,因此我遇到了错误。如何使用简单的 awk 命令解决此问题?

标签: awk

解决方案


将我的评论转换为答案,以便将来的访问者轻松找到该解决方案。

为了避免fatal: division by zero错误,在尝试除法之前检查是否$10为非零:

awk '{print ($1-0.777472), ($10 ? ($1*$2*$3*$4)/$10 : 0)}' case.dat

推荐阅读