免费注册 查看新帖 |

Chinaunix

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

【请教】awk substr问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-09 11:08 |只看该作者 |倒序浏览
本帖最后由 keke00 于 2010-05-09 11:11 编辑

上次已经问过类似的问题,无奈基础太差,再次麻烦大家{:3_183:} ,非常感谢

文件123.txt,共四行(因每一行较长故标注下),内容如下

第一行:123 aaa 55.52 53.56 54.57 58.59 60.01 56.54 57.51 58.02 59.01 60.02 aa0101e ab0001 ac0005i ad0004 ddd ae0004a
第二行:456 aaa 53.54 56.52 57.52 58.52 59.01 12.13 13.14 14.15 15.16 16.17 ba0011f  bb0002 bc0004j bd0004 ffffff be0003a
第三行:789 aaa 56.54 57.51 58.02 59.01 60.02 55.52 53.56 54.57 58.59 60.01 da0101g db0003 dc0003k dd0004 qqq de0002e
第四行:abc bbb 12.13 13.14 14.15 15.16 16.17 56.54 57.51 58.02 59.01 60.02 ab1001h db0002 gc0008h wd0004 eee ce0005b

要求:1. awk处理,OFS=,只打印匹配/aaa/的行
      2.打印第1域后,第3~12域每一个域只打印后4个字符(用循环实现),然后打印13、15、18域每一域的后5个字符
效果:
123,5.52,3.56,4.57,8.59,0.01,6.54,7.51,8.02,9.01,0.02,0101e,0005j,0004a
456,3.54,6.52,7.52,8.52,9.01,2.13,3.14,4.15,5.16,6.17,0011f,0004j,0003a
789,6.54,7.51,8.02,9.01,0.02,5.52,3.56,4.57,8.59,0.01,1001h,0008h,0002e

请帮小弟看下以下代码错zai哪里?并渴望犀利脚本
因为substr($15,3,5),substr($18,3,5)没起作用
  1. awk '/aaa/{printf $1;for(i=3;i<=12;i++){printf ","substr($i,2,4)};printf"," substr($13,3,5),substr($15,3,5),substr($18,3,5);printf "\n"}' 123.txt
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2010-05-09 12:29 |只看该作者
你少写了两个双引号

  1. awk '/aaa/{printf $1;for(i=3;i<=12;i++){printf ","substr($i,2,4)};printf"," substr($13,3,5)","substr($15,3,5)","substr($18,3,5);printf "\n"}' urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-05-09 21:19 |只看该作者
回复 2# Shell_HAT


    thanks a million~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP