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

mac*_*cat 2 sed awk paste

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

例子:

文件 1

3
Run Code Online (Sandbox Code Playgroud)

文件 2

7
Run Code Online (Sandbox Code Playgroud)

输出:

文件 1

3
Run Code Online (Sandbox Code Playgroud)

文件 2

10
Run Code Online (Sandbox Code Playgroud)

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

Fel*_*xJN 5

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

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

awk ' FNR==NR { a[NR]=$1 } FNR!=NR { print $1+a[FNR] }' file1 file2 | sponge file2
Run Code Online (Sandbox Code Playgroud)

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

paste -d'+' file1 file2 | bc -l | sponge file2
Run Code Online (Sandbox Code Playgroud)

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