如何将两个txt文件中的数字相加并将其写入同一个文件?

如何将两个txt文件中的数字相加并将其写入同一个文件?

我想添加两个 txt 文件中的数字。 file1 中的数字会发生变化,file2 应该像这样更新自己file2 = file1 + file2。不需要小数。

例子:

文件1

3

文件2

7

输出:

文件1

3

文件2

10

我尝试过,$ paste file1 file2 | awk '{$0 = $1 + $2}' > file2但它所做的只是将数字从 file1 复制到 file2 。

答案1

. 本地不支持就地替换awk。您可以使用spongefrommoreutils重写您读入的文件。

awk-逐行添加两个文件的方法

awk ' FNR==NR { a[NR]=$1 } FNR!=NR { print $1+a[FNR] }' file1 file2 | sponge file2

更简单的非awk方式,也支持浮点:

paste -d'+' file1 file2 | bc -l | sponge file2

两种方法都支持多行文件。

答案2

你可以这样做:

let tot=$(cat file1)+$(cat file2)
echo $tot

答案3

我尝试过使用命令,效果也很好

paste f1 f2| awk '{print $1+$2}' >f2_tmp && mv f2_tmp f2


praveen@praveen:~$ cat f1
3
praveen@praveen:~$ cat f2
10
praveen@praveen:~$ 

相关内容