linux将文件的第二列求和,awk实现第一列相乘,第二列求和,并相加 - 米扑博客...
AWK 取了三位创始人 Alfred Aho,Peter Weinberger, Brian Kernighan 的Family Name的首字符,学习AWK有一本相当经典的书《The AWK Programming Language》
我在这里的教程并不想面面俱到,本文和我之前的Go语言简介一样,全是示例,基本无废话。
现在想用awk实现第一列相乘,第二列求和,并相加
例如:
$ cat test_num.txt
1 10
2 20
3 30
4 40
5 50
说明:
1)第一列相乘,即 1 * 2 * 3 * 4 * 5 = 120
2)第二列相加,即 10 + 20 + 30 + 40 + 50 = 150
3)并相加,即 120 + 150 = 270
解题思路:
先对第一列求乘积,再对第二列求和,最后乘积与求和相加
解法1:使用 awk 运算
cat test_num.txt | awk 'BEGIN{multi=1;sum=0;}{multi*=$1;sum+=$2}END {print multi " + " sum " = " multi+sum}'
$ cat test_num.txt | awk 'BEGIN{multi=1;sum=0;}{multi*=$1;sum+=$2}END {print multi " + " sum " = " multi+sum}'
120 + 150 = 270
解法2:使用 shell while 循环
vim cal_multi_sum.sh
$ cat cal_multi_sum.sh
#!/bin/bash
# yanggang 2021.02.20
multi=1
sum=0
while read line
do
col1=`echo $line | cut -d ' ' -f 1`
col2=`echo $line | cut -d ' ' -f 2`
multi=`expr ${multi} \* ${col1}`
sum=`expr ${sum} + ${col2}`
echo "${col1} ${col2} ${multi} ${sum}"
done < test_num.txt
result=`expr ${multi} + ${sum}`
echo "${multi} + ${sum} = ${result}"
运行结果:
$ sh cal_multi_sum.sh
1 10 1 10
2 20 2 30
3 30 6 60
4 40 24 100
5 50 120 150
120 + 150 = 270
参考推荐:
linux将文件的第二列求和,awk实现第一列相乘,第二列求和,并相加 - 米扑博客...相关推荐
- linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客
测试树形目录 $ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt ...
- linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客
在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用 因此,先对 ...
- linux 指令效率,Linux15个命令,大幅提高工作效率 - 米扑博客
Linux 15个命令神器 ag.tig.mycli.jq.shellcheck.fzf.fpp.htop.glances.axel.sz/rz.cloc.tmux.script/scriptrepl ...
- 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客
分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式. 1.定时清空文件内容,定时记录文件大小 #!/bin/bash ########################### ...
- linux降低磁盘的读,Linux磁盘I/O优化:vm.dirty_ratio - 米扑博客
Linux 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到 ...
- linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客
今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...
- linux var log目录作用,Linux系统/var/log/journal/垃圾日志清理 - 米扑博客
CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal # ls -l /etc/logrotate.d/ -rw-r--r-- 1 root root 9 ...
- php 全局变量 $global 跨文件,PHPGlobal全局变量 - 米扑博客
Global是php中一个比较特殊的命令,大家直接叫他超级全局变量. 很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问. PHP Global变量在实际应用中,会发 ...
- svn服务器设置忽略文件夹,SVNignore忽略文件及目录 - 米扑博客
SVN 忽略文件夹 1.若创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容 $ svn mkdir cache $ svn propset svn:ignore '*' cach ...
最新文章
- 全球及中国4-氨基-3-硝基苯酚行业前景趋势与投资规模格局报告2022版
- 如何使用SAP Cloud for Customer里的ABSL代码调用Web service
- C++primer 第 4 章 表达式 4.1基础 4 . 2 算术运算符 4 .3 逻辑和关系运算符 4 . 4 赋值运算符 4 .5 递增和递减运算符 4.6成员访问运算符
- 计算机的应用可以分为几类,计算机分为哪几类专业
- java使用Post方式发送https请求的方法,直接可以用
- 《21天学通Java(第6版)》—— 1.7 问与答
- 评委对计算机知识竞赛的提问,评委评分知识竞赛答题软件
- 微信小程序UI设计(二)之view组件
- 非常规的DeepFaceLab(DeepFake)小花招和注意事项
- Young不等式的一个新证明
- 算法-动态规划-打家劫舍
- 4.人工智能时代下的大数据
- Affine-Transformation Parameters Regression for Face Alignment
- mysql生成序列_mysql 自动生成编号函数
- Fuzzing及Sulley简介
- LabVIEW MasterFramework 源码下载入口
- Infinite-former:无限记忆变换器
- 湖南成人高考医学专业可以跨专业报考吗
- 初学Python出现EnvironmentLocationNotFound: Not a conda environment: /anaconda3/envs/anaconda3
- FIO测试硬盘IOPS
热门文章
- 记一次.net mvc中 RouteAttribute 不起作用
- Android Theme主题
- C#:将图片文件上传到数据库两种方法。
- PHP error_reporting() 错误控制函数功能详解
- Linux查看磁盘块大小
- 《软件需求最佳实践》——阅读笔记一
- 第十二章——SQLServer统计信息(3)——发现过期统计信息并处理
- SpringMVC学习总结(三)——Controller接口详解(1)
- linux单机配置DG过程记录
- (一) 开天辟地入门篇(mvc)