gpt4 book ai didi

linux - 如何使用shell从另一个文件中的相应条目中减去一个文件中的每个条目

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:41 24 4
gpt4 key购买 nike

我有两个行数和列数相等的文件。我想使用 shell 从另一个文件中的相应条目中减去一个文件中的每个条目。例如

ifile1.txt      ifile2.txt    
3 5 2 2 1 2 1 3
1 4 2 1 1 3 0 2
4 6 5 2 2 5 5 1
5 5 7 1 0 0 1 1

ofile.txt i.e. (ifile1.txt - ifile2.txt)
2 3 1 -1
0 1 2 -1
2 1 0 1
5 5 6 0

我像下面那样做,这看起来非常手动,对于大量的行和列来说不是一个好主意。

paste ifile1.txt ifile2.txt > ifile3.txt
awk '{printf("%f %f %f %f\n", $1-$5, $2-$6, $3-$7, $4-$8);}' ifile3.txt > ofile.txt

最佳答案

要处理任意数量的列,您需要一个for 循环:

$ awk '{n=NF/2; for (i=1;i<=n;i++) printf "%5.2f ", $i-$(i+n); print ""}' ifile3.txt
2.00 3.00 1.00 -1.00
0.00 1.00 2.00 -1.00
2.00 1.00 0.00 1.00
5.00 5.00 6.00 0.00

关于linux - 如何使用shell从另一个文件中的相应条目中减去一个文件中的每个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com