% 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怎么写呢?
咋两次 哈哈
看这个 找下思路 https://blog.csdn.net/weixin_30872867/article/details/97206320
有其他问题可以一起探讨 这个会基本使用就行 你要是运维 写的复杂了其它热页看不懂
>> 每一行数据链的数字对应file1的id(不考虑负号)
这个写错了吧,应该是 对应 file2 的 id
awk 代码如下:
#!/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; }
以上写入脚本(如 c.awk)
$ chmod +x c.awk $ ./c.awk ./file2 ./file1 1767