免费注册 查看新帖 |

Chinaunix

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

求助!!!关于用AWK处理一条主记录带有n条子记录的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-16 20:25 |只看该作者 |倒序浏览
文件格式:
1 22  3344
2 aabb  cc
1 55  6677
2 d ee  ff
2 gghh  ii
.....
行首第一个字符代表记录标识,1为主记录,2为子记录,子记录可能会有一条或多条。现在想将文件重组成新的格式即每条记录为一条子记录,但最后两个字段为相对应的主记录的字段,格式如下:
aabb  cc  22
d ee  ff   55
gghh  ii  55
我用AWK写了一个程序:
awk -F/ '
BEGIN{}

{
   if( substr($1,1,1)==1)
  {
      $2=substr($1,3,2)   
   }
   if( substr($1,1,1)==2)
   {
       $3=substr($1,3,2)
       $4=substr($1,5,2)
       $5=substr($1,8,2)
   }
  print $3$4$5$2 > "file1"
}
  'test.txt
但是输出格式却是
22
aabb  cc  
55
d ee  ff   
gghh  ii
即主记录和子记录不在同一行,希望各位高手不吝赐教我这个初学者,多谢!!!!!

论坛徽章:
0
2 [报告]
发表于 2003-06-16 20:59 |只看该作者

求助!!!关于用AWK处理一条主记录带有n条子记录的文件

awk '{if($1==1){aa=$2}else{for(i=2;i<=NF;i++){printf "%s ",$i};print aa}}' urfile

论坛徽章:
0
3 [报告]
发表于 2003-06-16 21:34 |只看该作者

求助!!!关于用AWK处理一条主记录带有n条子记录的文件

请问怎么把这个命令写进文件里呢?

论坛徽章:
0
4 [报告]
发表于 2003-06-16 22:55 |只看该作者

求助!!!关于用AWK处理一条主记录带有n条子记录的文件

awk '{if($1==1){aa=$2}else{for(i=2;i<=NF;i++){printf "%s ",$i};print aa}}' urfile >newfile

是这个意思吗?

论坛徽章:
0
5 [报告]
发表于 2003-06-17 08:07 |只看该作者

求助!!!关于用AWK处理一条主记录带有n条子记录的文件

原帖由 "nkliyong" 发表:
awk '{if($1==1){aa=$2}else{for(i=2;i<=NF;i++){printf "%s ",$i};print aa}}' urfile >newfile

是这个意思吗?
   
同意LiYong的回答~~SP~

论坛徽章:
0
6 [报告]
发表于 2003-06-19 16:13 |只看该作者

求助!!!关于用AWK处理一条主记录带有n条子记录的文件

忘了及时感谢两位的帮助,深感抱歉!!!
多谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP