免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么取出日志三列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-10 10:18 |只看该作者 |倒序浏览
原始内容:      1615:106.113.106.255 - - [06/Jan/2014:00:02:05 +0000] "GET /images/bg_link.png HTTP/1.1" 200 1491

想得到内容:    106.113.106.255       06/Jan/2014:00:02:05     /images/bg_link.png

论坛徽章:
2
狮子座
日期:2014-01-02 10:47:24丑牛
日期:2014-02-13 17:58:37
2 [报告]
发表于 2014-01-10 10:31 |只看该作者
回复 1# lz66
  1. #cat b
  2. 1615:106.113.106.255 - - [06/Jan/2014:00:02:05 +0000] "GET /images/bg_link.png HTTP/1.1" 200 1491

  3. # awk -F '[]: []+' '{print $2" "$5":"$6":"$7":"$8" "$11}' b
  4. 106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-01-10 10:39 |只看该作者
回复 2# vincent_lnfsddy


thank


   

论坛徽章:
36
摩羯座
日期:2013-09-23 16:37:312015年亚洲杯之沙特阿拉伯
日期:2015-04-14 09:10:172015亚冠之柏太阳神
日期:2015-06-25 08:48:212015亚冠之武里南联
日期:2015-07-28 09:01:082015亚冠之莱赫维亚
日期:2015-07-28 15:44:172015亚冠之柏斯波利斯
日期:2015-09-06 14:08:52白银圣斗士
日期:2015-11-25 17:06:2815-16赛季CBA联赛之吉林
日期:2015-12-09 16:59:072016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之辽宁
日期:2016-04-14 09:29:04luobin
日期:2016-06-17 17:46:3615-16赛季CBA联赛之天津
日期:2016-08-16 14:11:01
4 [报告]
发表于 2014-01-10 10:39 |只看该作者
  1. sed 's/.*:\([^ ]*\) -.*\[\([^ ]*\).*GET \([^ ]*\).*/\1 \2 \3/'
复制代码

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
5 [报告]
发表于 2014-01-10 10:39 |只看该作者
回复 1# lz66
感觉楼主给多一点数据好一点,不是
很确定需求,理论上我可以数一下
1234...到想要的列,
也可以正则匹配想要的列。
  1. awk '{s=$1;for(i=2;i<=NF;i++)if($i~/\[|\/images/){sub(/\[/,"",$i);s=s"\t"$i};print s}' i

  2. 1615:106.113.106.255        06/Jan/2014:00:02:05        /images/bg_link.png
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
6 [报告]
发表于 2014-01-10 10:42 |只看该作者
本帖最后由 yestreenstars 于 2014-01-10 10:46 编辑
  1. $ awk '{sub(/.*:/,"",$1);gsub(/["[]/,"");print $1,$4,$7}' i
  2. 106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
复制代码
  1. $ sed -r 's/[^:]*:([^ ]*)[^[]*\[([^ ]*)[^/]*([^ ]*).*/\1\t\2\t\3/' i
  2. 106.113.106.255 06/Jan/2014:00:02:05    /images/bg_link.png
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [报告]
发表于 2014-01-10 12:15 |只看该作者
本帖最后由 jason680 于 2014-01-10 12:16 编辑

回复 1# lz66

$ cat get_info.sh

# to get info from web log
# input
#      1615:106.113.106.255 - - [06/Jan/2014:00:02:05 +0000] "GET /images/bg_link.png HTTP/1.1" 200 1491
sed -nr 's/^[0-9]+:(\S+) - - \[(\S+) \S+\] "GET (\S+).*/\1 \2 \3/p' $1
perl -lane 'print if s/^\d+:(\S+) - - \[(\S+) \S+\] "GET (\S+).*/\1 \2 \3/' $1
awk -F'[] []+' '$6~/GET/{sub("[0-9]+:","",$1);print $1,$4,$7}' $1
# output
#106.113.106.255       06/Jan/2014:00:02:05     /images/bg_link.png

$ cat get_info.txt
1615:106.113.106.255 - - [06/Jan/2014:00:02:05 +0000] "GET /images/bg_link.png HTTP/1.1" 200 1491
xxxx


$ bash get_info.sh get_info.txt
106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
8 [报告]
发表于 2014-01-10 13:27 |只看该作者
  1. [root@everIover ~]# echo '1615:106.113.106.255 - - [06/Jan/2014:00:02:05 +0000] "GET /images/bg_link.png HTTP/1.1" 200 1491' | awk '{print gensub(/.*:(.*)- -.*\[(.*)\+.*GET(.*)HTTP.*/,"\\1\\2\\3","g")}'
  2. 106.113.106.255 06/Jan/2014:00:02:05  /images/bg_link.png
复制代码

论坛徽章:
1
未羊
日期:2014-01-02 10:31:18
9 [报告]
发表于 2014-01-10 13:32 |只看该作者
  1. perl -pe 's/.*?:((?:\d{1,3}\.){3}\d{1,3}).*\[([^+]+).*(images[^H]+).*/\1 \2 \3/'
复制代码

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
10 [报告]
发表于 2014-01-12 21:57 |只看该作者
  1. awk '{gsub(/.*:/,"",$1);gsub(/\[/,"",$4);print $1,$4,$7}' 1.txt
  2. 106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
  3. sed  -rn 's/.*:([^ ]+) -.*\[([^ ]+).*GET ([^ ]+).*/\1 \2 \3/p' 1.txt
  4. 106.113.106.255 06/Jan/2014:00:02:05 /images/bg_link.png
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP