![对不同文件中的两列求和](https://linux22.com/image/47285/%E5%AF%B9%E4%B8%8D%E5%90%8C%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E4%B8%A4%E5%88%97%E6%B1%82%E5%92%8C.png)
我有两个这样的文件:
文件1:
-54.005 -67.405 0.1 -54.05 -68.7833 0.2 -54.05 -68.7333 0.3
文件2:
-54.005 -67.4050 70 12.7 -54.05 -68.7833 167 12.5 -54.05 -68.7333 205 12.6
我想要一个将第 3 列file1
与第 4 列相加的文件file2
,输出如下:
-54.005 -67.4050 70 12.8 -54.05 -68.7833 167 12.7 -54.05 -68.7333 205 12.9
我尝试使用以下命令:
cat file1 | awk '{n=$3; getline <"file2"; print "" $1,$2,$3,n+$4}' > output.txt
但它没有成功,我在这个网站上找不到这种类型的答案。
答案1
有一个工具可以将两个文件合并为一个:将文本文件合并为一个
paste file1 file2 | awk '{ print $3 + $13; }'
添加其他列,但请注意文件 2 中的列以 $10 开头。
答案2
您可以在 awk 中使用 NR 和 FNR。
awk 'FNR==NR { _a[FNR]=$3;} NR!=FNR { $4 += _a[FNR]; print; }' file1 file2