有会awk的大神吗?

有两个文件

% cat file1  
1 -3 -5 8 7 6  
9 -10 12 2 -4  
11 -13 14  
20 -21 22 19  

 % cat file2 
a    1    250  
b    2    150  
c    3    136  
d    4    167 
e    5    205 
f    6    163 
g    7    148 
h    8    141 
i    9    163 
j    10   264  
k    11   343 
l    12   254  
m    13   165  
n    14   155  
o    15   316  
p    16   212

file2第一列为编号,第二列为数据id,第三列为数据长度。
file1有多行,每一行数据链的数字对应file1的id(不考虑负号),计算file1前三行的数据链长度。
求教各位大神,用awk怎么写呢?

既然不太会 awk 为啥不用python呢 python 分分钟搞定啊


因为在学习awk。。。求大神指点


写起来比较麻烦 有更简单的方法为啥拘泥于这个呢

哈哈哈,大神能帮我用awk吗?我知道麻烦呀,所以自己把自己写懵了,但一定要用awk的

不是一两分钟能学会的呢

我也不太熟 用 python java 哪个好处理用那个

看这个 找下思路 https://blog.csdn.net/weixin_30872867/article/details/97206320

还弄2份……


>> 每一行数据链的数字对应file1的id(不考虑负号)

这个写错了吧,应该是 对应 file2 的 id


awk 代码如下:

<pre>

#!/usr/bin/awk -f



FNR==NR {

    data_size_dic[$2] = $3

}



FNR<NR {

    if(FNR <=3) {

        for(i=1; i<=NF; i++) {

            if($i > 0) {

                total += data_size_dic[$i];

            }

        }

    }

}



END {

    print total;

}

</pre>


以上写入脚本(如 c.awk)

<pre>

$ chmod +x c.awk

$ ./c.awk ./file2 ./file1

1767

</pre>