有两个文件
% 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>