LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1418|回复: 1

如何用Shell的awk和sed转换日志文件的时间格式。

[复制链接]
发表于 2008-3-20 16:23:32 | 显示全部楼层 |阅读模式
已知用:

[root@www1 weblog-backup]# cat log-access20080319.log |awk '{print $1" "$4" "$7}'|more

可以得到如下结果:

221.213.130.100 19/Mar/2008:00:00:00 /promotion/xunlei_tab_080304/list.html
218.67.255.32 19/Mar/2008:00:00:00 /Simple/popup/myHitList1.htm
61.191.208.248 19/Mar/2008:00:00:00 /promotion/xunlei_tab_080304/list.html
60.9.205.151 19/Mar/2008:00:00:00 /promotion/xunlei_tab_080304/list.html
222.26.109.238 19/Mar/2008:00:00:01 /promotion/xunlei_tab_080304/list.html


输出格式为:ip 访问时间 访问地址


现在我想把日期格式转换为 2008-3-19 00:00:00 这样的格式,请问应该怎么扩展此命令?

也就是说最终格式如下:


221.213.130.100 2008-3-19 00:00:00 /promotion/xunlei_tab_080304/list.html
218.67.255.32 2008-3-19 00:00:00 /Simple/popup/myHitList1.htm
61.191.208.248 2008-3-19 00:00:00 /promotion/xunlei_tab_080304/list.html
60.9.205.151 2008-3-19 00:00:00 /promotion/xunlei_tab_080304/list.html
222.26.109.238 2008-3-19 00:00:00 /promotion/xunlei_tab_080304/list.html



谢谢大家。
发表于 2008-3-21 10:04:16 | 显示全部楼层
一个很直观的办法是首先将代表月份的单词如Mar转换为对应的数字,然后就很好办了。
转换的话只要利用类似于switch/case或者if语句即可实现。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表