我想添加两个 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
。您可以使用sponge
frommoreutils
重写您读入的文件。
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:~$