gpt4 book ai didi

linux - 使用 shell 脚本或 awk 平均后两个文件之间的差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:19 29 4
gpt4 key购买 nike

我有两个文件。每个都有一列有一些缺失的数据,如 9999、9000。例如

ifile1.txt    ifile2.txt
30 20
9999 10
10 40
40 30
10 31
29 9000
9000 9999
9999 9999
31 1250
550 29

我想在不考虑缺失值的情况下计算上述两个文件的平均值之间的差异。即

average (ifile1.txt) - average (ifile2.txt)

我这样试过,但没有得到结果。

ave1=$(awk '!/\9999/ && !/\9000/{sum += $1; count++} END {print count ? (sum/count) : count;sum=count=0}' ifile1.txt)
ave2=$(awk '!/\9999/ && !/\9000/{sum += $1; count++} END {print count ? (sum/count) : count;sum=count=0}' ifile2.txt)

result=$(ave1-ave2)
echo $result

最佳答案

awk '!/9000|9999/{a[FILENAME]+=$0;b[FILENAME]++}END{for(i in a)c=c?c-a[i]/b[i]:a[i]/b[i];print c}' file1 file2

更新:

awk '!/9000|9999/{a[ARGIND]+=$0;b[ARGIND]++}END{print a[1]/b[1]-a[2]/b[2]}' file1 file2

awk '!/9000|9999/{a[ARGIND]+=$0;b[ARGIND]++}END{for(i=1;i<=ARGIND;i++)c=c?c-a[i]/b[i]:a[i]/b[i];print c}' file1 file2

关于linux - 使用 shell 脚本或 awk 平均后两个文件之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540543/

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