awk - 如何克服 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 命令解决此问题?
解决方案
将我的评论转换为答案,以便将来的访问者轻松找到该解决方案。
为了避免fatal: division by zero
错误,在尝试除法之前检查是否$10
为非零:
awk '{print ($1-0.777472), ($10 ? ($1*$2*$3*$4)/$10 : 0)}' case.dat
推荐阅读
- c++ - 为什么short int在c ++中存储到文件时变成4字节?
- java - 如何在 Android 客户端上从 Java 服务器读取文本
- python - 子目录中的python文件路径不正确
- c++ - 如何创建 DIB、设置位并附加到 CImageList
- python - 如何在不覆盖现有密钥的情况下向 Dynamodb 映射添加新密钥?
- reactjs - Axios @ React:错误:请求失败,PATCH 状态码为 400
- django - 我正在寻找一个库,它允许 Django 用户对 API 进行 OAuth 身份验证,并且 Django 可以访问他们的数据
- node.js - 如何在 Firestore 中调用 Async 和 Await
- swift - 调整大小时 SwiftUI macOS 极端滞后窗口
- api - REST API:验证 GET 请求中的请求参数?