免费注册 查看新帖 |

Chinaunix

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

求助!!菜鸟求帮助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-13 17:24 |只看该作者 |倒序浏览
现在小弟有这样一个需求,要把一个文件夹(/root/dns_log)下的文件数据统一格式,以方便导入到数据库中。
文件有好多个,文件如dns2011071303.log
单个文件处理写了个awk的,不会写,瞎写的
awk '{print substr($1,33,3), substr($1,41)" "substr($2,1,length($2)-4),split($6,D,"#"),D[1],split(D[1],ip,"."),ip[1],ip[2],ip[3],ip[4],substr(D[2],1,length(D[2]-1)),$8,$10,$11,$12,$13}' dns2011071003.log | awk '{print $1,$2,$3,$5,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' >tianjin

我现在想写一个脚本,把文件夹下的log文件名传给这个awk,无奈,真的不会写啊!
请高手帮助!

论坛徽章:
0
2 [报告]
发表于 2011-07-13 17:59 |只看该作者
没明白 你要做什么?
  1. awk '{print FILENAME}' | uniq | /root/dns_log/*.log
复制代码
??

论坛徽章:
0
3 [报告]
发表于 2011-07-13 18:15 |只看该作者
不太理解你要做什么,但是写了一个类似的例子给你参考。

#!/bin/sh

path="/root/dns_log"
outpath="tianjin"

logs=`ls $path`

for a in $logs
do
gawk -F '['  '{print $2}' $a >>outpath

done

论坛徽章:
0
4 [报告]
发表于 2011-07-14 09:29 |只看该作者
回复 2# linux_kim


    我想做的是把这个文件夹下的n多日志文件经过脚本处理放到一个或几个文件中去,不知道我这么说明不明白?

论坛徽章:
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
5 [报告]
发表于 2011-07-14 09:40 |只看该作者
请给出原始文件例子和要求的输出。

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
6 [报告]
发表于 2011-07-14 09:42 |只看该作者
回复 1# 1234zhuxu


try:
  1. awk '{split($6,D,"#");split(D[1],ip,".");print substr($1,33,3),substr($1,41)" "substr($2,1,length($2)-4),D[1],ip[1],ip[2],ip[3],ip[4],substr(D[2],1,length(D[2]-1)),$8,$10,$11,$12,$13}' /root/dns_log/*.log > tianjin
复制代码

论坛徽章:
0
7 [报告]
发表于 2011-07-14 09:45 |只看该作者
源文件是这样的
/data/namedqlog/aiquery_192.168.4.6.log:10-Jul-2011 03:00:00.006 aiqueries: info: client 117.136.1.254#4076: aiquery: m.hotmail.com IN A + 0 1
/data/namedqlog/aiquery_192.168.4.6.log:10-Jul-2011 03:00:00.006 aiqueries: info: client 117.136.1.105#63085: aiquery: api.weibo.cn IN A + 0 1
/data/namedqlog/aiquery_192.168.4.6.log:10-Jul-2011 03:00:00.006 aiqueries: info: client 117.136.1.101#31783: aiquery: www.google.com IN A + 0 0
/data/namedqlog/aiquery_192.168.4.6.log:10-Jul-2011 03:00:00.008 aiqueries: info: client 221.178.209.156#48676: aiquery: stat.sd.360.cn IN A + 0 0

然后我想得到是这样的

4.6 10-Jul-2011 03:00:00 117.136.1.254 117 136 1 254 4076 m.hotmail.com A + 0 1
4.6 10-Jul-2011 03:00:00 117.136.1.105 117 136 1 105 63085 api.weibo.cn A + 0 1
4.6 10-Jul-2011 03:00:00 117.136.1.101 117 136 1 101 31783 www.google.com A + 0 0
4.6 10-Jul-2011 03:00:00 221.178.209.156 221 178 209 156 48676 stat.sd.360.cn A + 0 0

论坛徽章:
0
8 [报告]
发表于 2011-07-14 09:47 |只看该作者
现在就是这个日志文件是按小时上传到服务器的,我需要把每个文件中的数据格式化成数据库中需要的数据,
所以想写个shell让他自动完成

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
9 [报告]
发表于 2011-07-14 10:04 |只看该作者

  1. sed -r 's/^[^.]+\.[^.]+\.//;s/\./ /2;s/log://;s/\.[^ ]+ aiqueries: info: client / /;s/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/& \1 \2 \3 \4/;s/#/ /;s/: aiquery://;s/ IN//' file
复制代码

论坛徽章:
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
10 [报告]
发表于 2011-07-14 10:08 |只看该作者
本帖最后由 rdcwayx 于 2011-07-14 10:21 编辑

awk 自带 FILENAME 变量
  1. awk '{split(FILENAME,a,"."); print a[3]"."a[4], $1, $2, $6,$8,$10,$11,$12}' *.log
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP