bash – 从多个文件添加列的简单方法
发布时间:2020-12-15 21:18:30 所属栏目:安全 来源:网络整理
导读:如果我有这样的多个文件: filename1.txt # 0.21.0 0.01.5 1.02.0 0.82.5 1.1 filename2.txt # 0.51.0 0.11.5 0.62.0 1.32.5 0.4 所有第一列都相同的地方.我只想要一个输出: # 0.71.0 0.11.5 1.62.0 2.12.5 1.5 我知道 paste filename1.txt filename2.txt |
如果我有这样的多个文件:
filename1.txt # 0.2 1.0 0.0 1.5 1.0 2.0 0.8 2.5 1.1 filename2.txt # 0.5 1.0 0.1 1.5 0.6 2.0 1.3 2.5 0.4 所有第一列都相同的地方.我只想要一个输出: # 0.7 1.0 0.1 1.5 1.6 2.0 2.1 2.5 1.5 我知道 paste filename1.txt filename2.txt | awk '{print $1,$2+$4}' 但是当有超过20个文件时它是不可行的.我也试过用 awk 'NR==FNR{a[NR]=$2;next}{print $1,$2+a[FNR]}' filename1.txt filename2.txt 但它只适用于2个文件,然后似乎忽略了其余的. 解决方法
你可以使用这个awk:
awk '{a[FNR]=$1; s[FNR]+=$2} END{for (i=1; i<=FNR; i++) print a[i],s[i]}' file1 file2 # 0.7 1.0 0.1 1.5 1.6 2.0 2.1 2.5 1.5 FNR从每个文件的1开始,因此您可以将所有输入文件传递给此awk命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ubuntu – 无法找到package language-pack-en
- jax soap实现webservice服务端编写
- Bash:用于每个目录
- angularjs – SPA初始加载时间
- Angular – 无法绑定到’ngValue’,因为它不是’mat-option
- angular – Observable .catch不是一个函数
- angularJS的$watch失效问题的解决方案
- 单元测试 – 如何测试是否在AngularJS中抛出异常
- WebApi+Bootstrap+KnockoutJs打造单页面程序
- twitter-bootstrap – Bootstrap Glyphicons如何工作?