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

有会awk的大神吗?

21
已结题

有两个文件

% 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怎么写呢?
  • 点赞
  • 收藏
  • 复制链接分享

9条回答

  • kubiaa yflin 1年前

    还弄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>

    点赞 评论 复制链接分享
  • cainiaoyueyue 小白编程笔记 1年前

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

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

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

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

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

    不是一两分钟能学会的呢

    点赞 评论 复制链接分享
  • cainiaoyueyue 小白编程笔记 1年前

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

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

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

    点赞 评论 复制链接分享
  • cainiaoyueyue 小白编程笔记 1年前

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


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

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


    点赞 评论 复制链接分享