免费注册 查看新帖 |

Chinaunix

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

请问用awk如何实现以下功能? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-04 16:19 |只看该作者 |倒序浏览
向各位大虾请教一个问题:

我现有一个日志文件,格式如下所示:2009-03-26 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0
当前需求要把这个文件按2009-03-26的时间日期格式依次递推转化成30个不同日期的日志文件,并把输出结果重定向到sn1......sn30不等的30个文件中,请问用awk如何实现?各位大哥帮帮忙吧!

论坛徽章:
0
2 [报告]
发表于 2009-06-04 16:23 |只看该作者
awk -F ' +|-' '{print $0 >"sn"$3".txt"}' file

[ 本帖最后由 ywlscpl 于 2009-6-4 16:25 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-06-04 16:31 |只看该作者
你的日志全是同年同一个月的吗?为什么不生成sn20090301...sn20090302..sn20090331这样的文件?
awk -F ' +|-' '{print $0 >"sn"$1$2$3".txt"}' file

论坛徽章:
0
4 [报告]
发表于 2009-06-04 16:42 |只看该作者

回复 #2 ywlscpl 的帖子

大天使
你好,我测试了一下你的语句,可是结果并不是我想要的,我的意思是需要把
“2009-03-26 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0”
修改成
“2009-03-27 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0”
格式的文件,并把该文件重定向到sn01.....sn20文件中。修改的只是日志文件的日期!!其他内容不变!

论坛徽章:
1
巨蟹座
日期:2014-06-04 13:33:30
5 [报告]
发表于 2009-06-04 16:42 |只看该作者
2009-03-01 xxx
2009-03-02 xxx
2009-03-03 xxx

这样?

论坛徽章:
0
6 [报告]
发表于 2009-06-04 16:50 |只看该作者
恩,是的,楼上说的没错!

论坛徽章:
0
7 [报告]
发表于 2009-06-04 16:52 |只看该作者

回复 #4 独行虾 的帖子

额,理解错了。。。

awk -F ' +|-' '{sub($1"-"$2"-"$3" ",$1"-"$2"-"sprintf("%02d ",$3+1));print >"sn"NR}' file

日期都+1
  1. [root@Mylinux tmp]# cat file
  2. 2009-03-26 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0
  3. 2009-03-22 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0
  4. [root@Mylinux tmp]# awk -F ' +|-' '{sub($1"-"$2"-"$3" ",$1"-"$2"-"sprintf("%02d ",$3+1));print >"sn"NR}' file
  5. [root@Mylinux tmp]# cat sn1
  6. 2009-03-27 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0
  7. [root@Mylinux tmp]# cat sn2
  8. 2009-03-23 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0
复制代码

[ 本帖最后由 ywlscpl 于 2009-6-4 16:57 编辑 ]

论坛徽章:
1
巨蟹座
日期:2014-06-04 13:33:30
8 [报告]
发表于 2009-06-04 17:01 |只看该作者
root@debian:~/test# cat hi
#!/bin/bash
for a in `seq -w 1 30`
do
echo "2009-03-$a 00:05:08 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/27/one_52277.shtml - 80 - 61.135.249.206 Mozilla/5.0"
done

论坛徽章:
0
9 [报告]
发表于 2009-06-04 17:03 |只看该作者
看来要加强汉语言的学习

论坛徽章:
0
10 [报告]
发表于 2009-06-04 17:12 |只看该作者

回复 #7 ywlscpl 的帖子

非常感谢“大天使”兄的帮助
可是我的表达的意思还不是很清楚,需求是这样的:
现我有一个IIS日志文件文件,文件内容如下:
    2009-03-28 00:00:11 W3SVC517896918 211.155.25.56 GET /robots.txt - 80 - 65.55.208.165 msnbot/1.1+(+http://search.msn.com/msnbot.htm) 404 0 64
    2009-03-28 00:00:13 W3SVC517896918 211.155.25.56 GET /08yj/yjgg/200810/article_167.html - 80 - 65.55.208.165 msnbot/1.1+(+http://search.msn.com/msnbot.htm) 200 0 0
    2009-03-28 00:00:30 W3SVC517896918 211.155.25.56 GET /dfdj/df.html PTAG=10001.1.58 80 - 219.133.51.169 NMget/1.10.2 200 0 0
     2009-03-28 00:00:32 W3SVC517896918 211.155.25.56 GET /dfdj/df.html PTAG=10001.1.58 80 - 60.28.233.54 NMget/1.10.2 200 0 0
    2009-03-28 00:00:39 W3SVC517896918 211.155.25.56 GET /08mrzx/xwzz/200810/article_157.html - 80 - 61.135.249.206 Mozilla/5.0+(compatible;+YoudaoBot/1.0;+http://www.youdao.com/help/webmaster/spider/;+) 200 0 0
    2009-03-28 00:00:59 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/2/one_52152.shtml - 80 - 61.135.249.206 Mozilla/5.0+(compatible;+YoudaoBot/1.0;+http://www.youdao.com/help/webmaster/spider/;+) 200 0 0
    2009-03-28 00:02:18 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/15/one_11115.shtml - 80 - 61.135.249.206 Mozilla/5.0+(compatible;+YoudaoBot/1.0;+http://www.youdao.com/help/webmaster/spider/;+) 200 0 0
    2009-03-28 00:02:33 W3SVC517896918 211.155.25.56 GET /08mrzx/mtbd/200810/article_176.html - 80 - 61.135.249.206 Mozilla/5.0+(compatible;+YoudaoBot/1.0;+http://www.youdao.com/help/webmaster/spider/;+) 200 0 0
    2009-03-28 00:02:53 W3SVC517896918 211.155.25.56 GET /08mrzx/shows/46/one_11046.shtml - 80 - 61.135.249.206 Mozilla/5.0+(compatible;+YoudaoBot/1.0;+http://www.youdao.com/help/webmaster/spider/;+) 200 0 0
    2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/dfdj2_css.css - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 304 0 0
    2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/saishi/200904/article_284.html - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 200 0 0
    2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/tou.html - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 200 0 0
   2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/dfdj2_css.css - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 304 0 0
  2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/img/zx1.jpg - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 304 0 0
2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/img/640x90.swf - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 304 0 0
2009-03-28 00:04:14 W3SVC517896918 211.155.25.56 GET /dfdj/img/zx2.jpg - 80 - 116.18.125.214 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 304 0 0

现我需把该文件内的2009-03-28字段按日期修改成2009-03-29,2009-03-30,一到3月份的最后一天,自动换成2009-04-01的日期形式,其他内容均不改变,并把这些修改日期后的内容重新定向到以sn开头,并以01..02..03结尾的文件中!

不知道我这样表述是否清楚??还请各位多多指点指点!谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP