0

我有三个文件,每个文件包含一行,两列如下:

文件1.txt

3 5

文件2.txt

2 6

文件 3.txt

6 3

我想将它们组合在一个文件中,该文件将第一列和第二列相加,如下所示:

最终文件.txt

11 14

我需要用 Unix 命令来做到这一点

4

3 回答 3

8

这是使用的快速方法awk

awk '{ one+=$1; two+=$2 } END { print one, two }' file[1-3].txt > finalfile.txt
于 2012-12-03T03:05:21.870 回答
3

在寻求帮助之前,您需要自己尝试解决问题。但是我觉得这个问题很有趣。这是使用 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";
于 2012-12-03T03:12:37.427 回答
2

假设 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 }'

echo `...` 将所有数字放在一行上。awk 程序将变量 a 和 b 中的奇数列和偶数列相加。

于 2012-12-03T03:10:43.153 回答