Chinaunix

标题: “XX分XX秒”转换成“秒”的问题 [打印本页]

作者: 哈    时间: 2005-04-03 08:32
标题: “XX分XX秒”转换成“秒”的问题
有某日值文件其中时间域为如下格式,现要对其进行合计
  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秒
复制代码

麻烦各位出手(格式不必讲究,给出关键代码就可以了),谢谢!
作者: li2002    时间: 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秒

复制代码

作者: icesummit    时间: 2005-04-03 10:56
标题: “XX分XX秒”转换成“秒”的问题
[quote]原帖由 "li2002"]sed 's/分/\*60+/;s/秒//' xx|bc>xxx[/quote 发表:

妙!  
作者: 哈    时间: 2005-04-03 11:07
标题: “XX分XX秒”转换成“秒”的问题
[quote]原帖由 "li2002"][/quote 发表:

谢谢!
作者: 哈    时间: 2005-04-03 11:31
标题: “XX分XX秒”转换成“秒”的问题
to li2002
整分时bc出错(是我提供的数据不全!),做了如下修订:
  1. cat xx|sed 's/分/*60+/;s/秒/+0/'|sed 's/\+$/+0/'|bc >xxx
复制代码

完成了,再次感谢li2002
作者: li2002    时间: 2005-04-03 14:46
标题: “XX分XX秒”转换成“秒”的问题
你“秒”字后还有东西吧。
那就cat xx|sed 's/分/*60+/;s/秒.*//'
作者: 哈    时间: 2005-04-03 19:58
标题: “XX分XX秒”转换成“秒”的问题
原帖由 "li2002" 发表:
你“秒”字后还有东西吧。
那就cat xx|sed 's/分/*60+/;s/秒.*//'

秒后面没有东东了,但象“12秒”等不够“分”的数字就会变成单个数字,送到bc后会报错,所以将“秒”换成“+0”
作者: li2002    时间: 2005-04-03 20:04
标题: “XX分XX秒”转换成“秒”的问题
那我用你的文本试验时怎么没报错?

echo  31|bc

31
没问题啊




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2