免费注册 查看新帖 |

Chinaunix

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

求助-shell加入时间截并行计算 [复制链接]

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

文件名:file_2011-09-13_17:00:07.log

a 100
b 200
c 300
.
.
.


取出总行数
line=`wc -l file_2011-09-13_17:00:07.log | awk '{print $1}'`
取出开始时间
stime=`echo "file_2011-09-13_17:00:07.log" |awk -F[_] '{print $3" "$4}' |awk -F[.] '{print $1}'`

假如文件总行数有上万行,如何通过脚本并行实现,在file_2011-09-13_17:00:07.log第一列插入从开始时间开始,每行加一秒呢,串行效率太低了.
最后希望得到的log文件为:
2011-09-13 17:00:07 a 100
2011-09-13 17:00:08 b 200
2011-09-13 17:00:09 c 300
.

高手指点一下有没有更好的方法实现?
.
.

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
2 [报告]
发表于 2011-09-18 12:20 |只看该作者
  1. awk 'BEGIN{now=mktime(gensub("[-_:]"," ","g",substr(ARGV[ARGIND+1],6,19)))}{print(strftime("%x %X",now++)" "$0)}' "file_2011-09-13_17:00:07.log"
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2011-09-18 12:48 |只看该作者
  1. awk '{s=gensub(/file_|\.log/,"","g",FILENAME);sub("_"," ",s);cmd1="date -d \""s"\" \"+%s\"";cmd1|getline t;cmd2="date -d @"t++" \"+%F %T\"";cmd2|getline T;print T,$0}' file
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
4 [报告]
发表于 2011-09-18 13:15 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2011-09-18 21:27 |只看该作者
望其项背

论坛徽章:
0
6 [报告]
发表于 2011-09-18 23:48 |只看该作者
  1. awk 'NR==1{split(FILENAME,m,"[_:.-]");t=mktime(m[2]" "m[3]" "m[4]" "m[5]" "m[6]" "m[7])}{$0=strftime("%Y-%m-%d %H:%M:%S ",t++)$0}1' "file_2011-09-13_17:00:07.log"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP