开发者社区> 问答> 正文

这个linux shell 怎么实现哦?

cat file1:
0011AAA 200.00 20050321
0012BBB 300.00 20050621
0013DDD 400.00 20050622
0014FFF 500.00 20050401

cat file2:
I0011 11111
I0012 22222
I0014 55555
I0013 66666

规则:比较 file1的1-4字符 和 file2的2-5 字符,如果相同,将file2 的第二列 与 file1 合并 file3

如下

0011AAA 200.00 20050321 11111
0012BBB 300.00 20050621 22222
0013DDD 400.00 20050622 66666
0014FFF 500.00 20050401 55555

请问下,怎么做哦?

展开
收起
a123456678 2016-06-14 15:34:12 1859 0
1 条回答
写回答
取消 提交回答
  • #!/bin/bash
    for ((i=1;i<5;i++))
    do       
    str1=`sed -n "${i}p" file1`      
    str2=`sed -n "${i}p" file2`       
    f1str=`echo ${str1:0:4}`       
    f2str=`echo ${str2:1:5}`      
    if [[ $f1str -eq $f2str ]];then              
    echo "$str1 `sed -n "${i}p" file2 | awk '{print $2}'`" >> file3       
    fi
    done
    2019-07-17 19:37:53
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载