我有三个文件,每个文件包含一行两列,如下所示:
文件1.txt
3 5
文件2.txt
2 6
文件3.txt
6 3
我想将它们合并到一个文件中,该文件对第一列和第二列的总和如下:
最终文件.txt
11 14
我需要用 Unix 命令来做到这一点
以下是使用 awk
的快速方法:
awk '{ one+=$1; two+=$2 } END { print one, two }' file[1-3].txt > finalfile.txt
在寻求帮助之前,您需要自己尝试该问题。但是我觉得这个问题很有趣。以下是使用 bash 脚本的可能解决方案:
cat file1.txt file2.txt file3.txt > treefiles.txt
suma=0;
sumb=0;
while read a b
do
suma=$((suma + a));
sumb=$((sumb + b));
done < treefiles.txt;
echo "$suma $sumb";
考虑到评论:
suma=0;
sumb=0;
while read a b
do
((suma += a));
((sumb += b));
done < <(cat f1.txt f2.txt f3.txt)
echo "$suma $sumb";
假设 Python 标签是一个错误,这将解决问题。
echo `cat file*.txt` | awk 'BEGIN {a=0;b=0;} {for (i=1;i<=NF;i++) { if ( i%2 == 0 ) { b+=$i } else { a+=$i } } } END { print a, b }'
回声"..."将所有数字放在一行上。awk 程序对变量 a 和 b 中的奇数列和偶数列求和。