shell - awk:未处理任何行时打印 0 而不是空白
问题描述
考虑这个总结文件中特定字段的所有值的 awk 示例:
awk '{sum+=$2} END{print "total: ",sum}' file.txt
当文件为空时,awk 不会为 sum 输出任何内容。在这些情况下是否可以输出“0”?
解决方案
按照我对这个特定用例的偏好(从最喜欢到最不喜欢)的顺序:
awk '{sum+=$2} END{print "total: ",sum+0}' file.txt
或者
awk '{sum+=$2} END{printf "total: %d\n",sum}' file.txt
或者
awk 'BEGIN{sum=0} {sum+=$2} END{print "total: ",sum}' file.txt
推荐阅读
- html - 响应式——如何从我当前的移动屏幕设置中获得这种想要的布局?
- java - 如何将下载的 mp4 文件附加(合并)到一个 mp4 文件中?
- amazon-mws - Amazon SP-API 更新库存
- c++ - C++ 中的对象数组
- java - 对于缺少所需协议和/或密码套件的客户端,nv-websocket-client (2.14) 握手失败
- c++ - 删除链表中的节点 free() 还是删除?C++
- python - 如何从音频中提取特征到数据集?
- azure - Azure DevOps 发布管道将工件发布到远程服务器
- tensorflow - 如何使用 tensorflow 子类化实现自定义验证步骤
- python-3.x - 如何将 pandas get_dummies 函数应用于有效数据集?