cainiaoyueyue
小白编程笔记
采纳率25%
2020-04-21 21:51

有关awk的简单计算

10
已结题
% 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怎么写呢?

  • 点赞
  • 收藏
  • 复制链接分享

5条回答

  • kubiaa yflin 1年前

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

    $ chmod +x c.awk
    $ ./c.awk ./file2 ./file1
    1767
    
    点赞 评论 复制链接分享
  • kubiaa yflin 1年前

    >> 每一行数据链的数字对应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;
    }
    
    点赞 评论 复制链接分享
  • yan88888888888888888 大广-全栈开发 1年前

    有其他问题可以一起探讨 这个会基本使用就行 你要是运维 写的复杂了其它热页看不懂

    点赞 评论 复制链接分享
  • yan88888888888888888 大广-全栈开发 1年前

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


    点赞 评论 复制链接分享
  • yan88888888888888888 大广-全栈开发 1年前

    咋两次 哈哈

    点赞 评论 复制链接分享