免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6355 | 回复: 11

[文本处理] 日志列对换位置 [复制链接]

论坛徽章:
0
发表于 2013-08-26 12:12 |显示全部楼层
192.168.9.157 - - 2013-08-17 03:32:04 +0800] "GET /maweiqu/shuguang/aolon/m0010_sd/ HTTP/1.1" 200 27282 "http://0592.273.cn/" "Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)" 123.151.139.218 0.196 -

变成
2013-08-17 03:32:04  192.168.9.157 "GET /maweiqu/shuguang/aolon/m0010_sd/ HTTP/1.1" "http://0592.273.cn/" 80 - 123.151.139.218 "Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)"  200 0 0 0.196

最关建的还是这个 "Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)"   长度不定

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
发表于 2013-08-26 12:34 |显示全部楼层
你自己有试过吗? Tips for you:

不要按照空格判断,按照 双引号 来分。

论坛徽章:
1
天蝎座
日期:2013-08-22 15:14:44
发表于 2013-08-26 13:09 |显示全部楼层
回复 1# txnet


    以“为分隔符,用split来获取字段的内容,输出时移位。
    另外,80是什么值,200后面的两个0是什么含义?

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
发表于 2013-08-26 13:39 |显示全部楼层
去调整webserver的log格式配置不好吗???

论坛徽章:
0
发表于 2013-08-26 14:11 |显示全部楼层
回复 5# dn833
调了,但前面的日志 要求转一下


   

论坛徽章:
0
发表于 2013-08-26 14:14 |显示全部楼层
回复 3# guogang225

主要想问的 实际就是 不管什么列,对换其它几个列 然后有一段 不确定个数的列输出的问题 如:

$4  $5 $1 ......   ($12 ...... NF-4 )  这样


   

论坛徽章:
1
天蝎座
日期:2013-08-22 15:14:44
发表于 2013-08-26 14:19 |显示全部楼层
回复 7# txnet


    不一定要空格作为分隔符,这样段数是变化的,可以使用双引号,不知道你80和200后面的 0 0是从哪边来的,就先写死了
    示例如下:
  1. awk  -F\" '{split($1,a," ");split($7,b," ");split($3,c," ");print a[4],a[5],"\""$2"\"","\""$4"\" 80 -",b[1],"\""$6"\"",c[1],"0 0",b[2]}' urfile
复制代码

论坛徽章:
1
摩羯座
日期:2013-09-28 17:07:31
发表于 2013-08-26 14:20 |显示全部楼层
用分号做分隔符的话,会把分号遗漏吧!回复 2# rdcwayx


   

论坛徽章:
1
摩羯座
日期:2013-09-28 17:07:31
发表于 2013-08-26 14:31 |显示全部楼层
既然是日志文件,那么每行的格式应该是同192.168.9.157 - - 2013-08-17 03:32:04 +0800] "GET /maweiqu/shuguang/aolon/m0010_sd/ HTTP/1.1" 200 27282 "http://0592.273.cn/" "Mozilla/5.0 (compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)" 123.151.139.218 0.196 -一样的

直接打印啊:awk '{print $4 " " $5 " " $1 " " $7 " " $8 " " $9 " " $12 " 80 - " $17 " " $13 " " $14 " " $15 " " $16}'

论坛徽章:
1
摩羯座
日期:2013-09-28 17:07:31
发表于 2013-08-26 14:32 |显示全部楼层
按域打印,就不必考虑长度问题!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP