免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1789 | 回复: 4
打印 上一主题 下一主题

问题-文本合成 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-04 15:40 |只看该作者 |倒序浏览
eg:
file  nodelist:
2  浙江
3  福建

file b:
2 20100301 7 12320
2 20100302 8 22528
2 20100303 7 16383

file c:
2 20100301 7 12
2 20100302 8 225
2 20100303 7 16
3 20100301 4264 2827943
3 20100302 3899 2640255
3 20100303 3905 2834327

file d:
3 20100301 4264 2827943
3 20100302 3899 2640255
3 20100303 3905 2834327

我想要的结果是 result
node       date     fileb里面的$3,$4  filec里面的$3,$4  filed里面的$3,$4
浙江   20100301    7 12320          7 12                        0  0
浙江   20100302    8 22528           8 225                     0   0
浙江   20100303    7 16383           7 16                       0   0
福建   20100301    0  0                 4264 2827943    4264 2827943
福建   20100302    0  0                 3899 2640255    3899 2640255
福建   20100303   0   0                 3905 2834327    3905 2834327



今天早上我发贴的时候得到这么个代码
awk -v day=`date +%Y%m%d` 'BEGIN{d1=substr(day,1,6);d2=substr(day,7,2)}!a[$1]++{b[++n]=$2}END{for (i=1;i<=n;i++) for (j=1;j<d2+0;j++) printf "%s %s%02d\n",b[i],d1,j}'  nodelist

这部分命令实现了
--------
浙江 20100301
浙江 20100302
浙江 20100303
福建 20100301
福建 20100302
福建 20100303


后面的该怎么继续,我是菜鸟,需要帮助,非常感谢。

论坛徽章:
0
2 [报告]
发表于 2010-03-04 16:09 |只看该作者
本帖最后由 ywlscpl 于 2010-03-04 16:12 编辑
  1. awk -v day=`date +%Y%m%d` 'BEGIN{d1=substr(day,1,6);d2=substr(day,7,2)}FILENAME=="nodelist"{for (i=1;i<d2+0;i++) {dd=sprintf("%02d",i);print $2"\t"d1""dd"\t"(b[$1" "d1""dd]?b[$1" "d1""dd]:"0 0")"\t"(c[$1" "d1""dd]?c[$1" "d1""dd]:"0 0")"\t"(d[$1" "d1""dd]?d[$1" "d1""dd]:"0 0")}}FILENAME=="b"{b[$1" "$2]=$3" "$4}FILENAME=="c"{c[$1" "$2]=$3" "$4}FILENAME=="d"{d[$1" "$2]=$3" "$4}' b c d nodelist
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-03-04 16:16 |只看该作者
非常感谢,你真的很酷,awk玩的真溜,谢谢

如果你有时间的话,能否把你的想法,思路说说

我想很多人都想看看的

论坛徽章:
0
4 [报告]
发表于 2010-03-04 16:30 |只看该作者
回复 3# 拖拉机商人


b c d文件都是按当前日期-1这样的规律生成的
思路就是:把文件b c d中内容按$1 $2对应$3 $4的关系存入数组b c d中
在处理nodelist文件时,按当前日期-1这样的规律生成日期,再把对应数组b c d中的内容取出即可

论坛徽章:
0
5 [报告]
发表于 2010-03-04 16:33 |只看该作者
ywlscpl 发表于 2010-03-04 16:09



    你真牛逼。。。花了好久才看懂 awk 的参数 用的真灵活  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP