免费注册 查看新帖 |

Chinaunix

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

awk中RS问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-10 11:08 |显示全部楼层 |倒序浏览
有文件:
cat time.txt

2008-01-08 17:33:26
2008-01-08 17:33:32
00:00:06
2008-01-08 17:34:12
2008-01-08 17:34:19
00:00:07
2008-01-08 16:34:07
2008-01-08 16:34:14
00:00:07

我想输出的结果:
start time: 2008-01-08 17:33:26  End time: 2008-01-08 17:33:32   elapsed time: 00:00:06
start time: 2008-01-08 17:34:12  End time: 2008-01-08 17:34:19   elapsed time: 00:00:07
start time: 2008-01-08 16:34:07  End time: 2008-01-08 16:34:14   elapsed time: 00:00:07

我用语句:
awk 'BEGIN{FS="\n";RS=""}{print "start time: " $1 "\t End time: " $2 "\t elapsed time: " $3}' time.txt

却只能输出想要的第一行记录:start time: 2008-01-08 17:33:26  End time: 2008-01-08 17:33:32   elapsed time: 00:00:06
后面两行未输出,请大家帮忙指点,谢谢了!

论坛徽章:
0
2 [报告]
发表于 2008-03-10 13:41 |显示全部楼层
原帖由 ly5066113 于 2008-3-10 11:14 发表
xargs -n5 < time.txt | awk '{print "start time:"$1,$2,"End time:"$3,$4,"elapsed time:"$5}'


这个的确很巧妙。
给xargs传参数,换行或者空格都可以作为参数分隔符的吗?

论坛徽章:
0
3 [报告]
发表于 2008-03-10 14:21 |显示全部楼层
  1. awk 'BEGIN{FS="\n";RS=""}{
  2. x=1
  3.         while(x<=NF){
  4.         print "start time: " $x "\t End time: " $(x+1) "\t elapsed time: " $(x+2)
  5.         x+=3
  6.         }
  7. }' time.txt
复制代码


最后用这个笨一点的办法搞定了,
谢谢大家指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP