免费注册 查看新帖 |

Chinaunix

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

“XX分XX秒”转换成“秒”的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-03 08:32 |只看该作者 |倒序浏览
有某日值文件其中时间域为如下格式,现要对其进行合计
  1. 31秒
  2. 1分47秒
  3. 20秒
  4. 13分58秒
  5. 12秒
  6. 13秒
  7. 8秒
  8. 20秒
  9. 6秒
  10. 21秒
  11. 7秒
  12. 16秒
  13. 38秒
  14. 12秒
  15. 32秒
  16. 14秒
  17. 54秒
  18. 1分39秒
  19. 5分8秒
  20. 23秒
  21. 13秒
复制代码
要求输出文件格式为
  1. 31秒 31秒
  2. 1分47秒 107秒
  3. 20秒 20秒
  4. 13分58秒 838秒
  5. 12秒 12秒
  6. 13秒 13秒
  7. 8秒 8秒
  8. 20秒 20秒
  9. 6秒 6秒
  10. 21秒 21秒
  11. 7秒 7秒
  12. 16秒 16秒
  13. 38秒 38秒
  14. 12秒 12秒
  15. 32秒 32秒
  16. 14秒 14秒
  17. 54秒 54秒
  18. 1分39秒 99秒
  19. 5分8秒 308秒
  20. 23秒 23秒
  21. 13秒 13秒
  22. -------------------------------
  23. 合计  28分12秒   1692秒
复制代码

麻烦各位出手(格式不必讲究,给出关键代码就可以了),谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-04-03 10:27 |只看该作者

“XX分XX秒”转换成“秒”的问题


  1. sed 's/分/\*60+/;s/秒//' xx|bc>xxx
  2. paste xx xxx|awk '{a+=$NF;print $0"秒"}END{printf("----\n合计 %d分%d秒\t%d秒\n",a/60,a%60,a)}'


复制代码

结果

  1. 31秒    31秒
  2. 1分47秒         107秒
  3. 20秒    20秒
  4. 13分58秒        838秒
  5. 12秒    12秒
  6. 13秒    13秒
  7. 8秒     8秒
  8. 20秒    20秒
  9. 6秒     6秒
  10. 21秒    21秒
  11. 7秒     7秒
  12. 16秒    16秒
  13. 38秒    38秒
  14. 12秒    12秒
  15. 32秒    32秒
  16. 14秒    14秒
  17. 54秒    54秒
  18. 1分39秒         99秒
  19. 5分8秒  308秒
  20. 23秒    23秒
  21. 13秒    13秒
  22. ----
  23. 合计 28分12秒   1692秒

复制代码

论坛徽章:
0
3 [报告]
发表于 2005-04-03 10:56 |只看该作者

“XX分XX秒”转换成“秒”的问题

[quote]原帖由 "li2002"]sed 's/分/\*60+/;s/秒//' xx|bc>xxx[/quote 发表:

妙!  

论坛徽章:
0
4 [报告]
发表于 2005-04-03 11:07 |只看该作者

“XX分XX秒”转换成“秒”的问题

[quote]原帖由 "li2002"][/quote 发表:

谢谢!

论坛徽章:
0
5 [报告]
发表于 2005-04-03 11:31 |只看该作者

“XX分XX秒”转换成“秒”的问题

to li2002
整分时bc出错(是我提供的数据不全!),做了如下修订:
  1. cat xx|sed 's/分/*60+/;s/秒/+0/'|sed 's/\+$/+0/'|bc >xxx
复制代码

完成了,再次感谢li2002

论坛徽章:
0
6 [报告]
发表于 2005-04-03 14:46 |只看该作者

“XX分XX秒”转换成“秒”的问题

你“秒”字后还有东西吧。
那就cat xx|sed 's/分/*60+/;s/秒.*//'

论坛徽章:
0
7 [报告]
发表于 2005-04-03 19:58 |只看该作者

“XX分XX秒”转换成“秒”的问题

原帖由 "li2002" 发表:
你“秒”字后还有东西吧。
那就cat xx|sed 's/分/*60+/;s/秒.*//'

秒后面没有东东了,但象“12秒”等不够“分”的数字就会变成单个数字,送到bc后会报错,所以将“秒”换成“+0”

论坛徽章:
0
8 [报告]
发表于 2005-04-03 20:04 |只看该作者

“XX分XX秒”转换成“秒”的问题

那我用你的文本试验时怎么没报错?

echo  31|bc

31
没问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP