awk问题请教
- O_O_BOT
- 帖子: 2461
- 注册时间: 2009-05-20 19:32
Re: awk问题请教
; 分割 先存起 延后输出
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录
http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
-
- 帖子: 10
- 注册时间: 2006-11-19 9:28
Re: awk问题请教
不懂,能说详细点吗?O_O_BOT 写了:; 分割 先存起 延后输出
- xzap
- 帖子: 256
- 注册时间: 2006-08-24 21:25
Re: awk问题请教
代码: 全选
i=1
cat file |while read $j
do
if [ $i -eq 1 ]
then
old =`echo $j|awk -F ";"{print $1} `
oldurl=`echo $j|awk -F ";"{print $2} `
i=2
else
new=`echo $j|awk -F ";"{print $1} `
newurl=`echo $j|awk -F ";"{print $2} `
y=`expr ${new:0:4} - ${old:0:4}`
m=`expr ${new:4:2} - ${old:4:2}`
d=`expr ${new:6:2} - ${old:6:2}`
#还有时分秒的自己弄
echo "$oldurl和$newurl相差$y年$m月$d天"
old=$new
oldurl=$newurl
fi
done
- c\nc
- 帖子: 231
- 注册时间: 2007-12-25 12:51
Re: awk问题请教
我也提供一个bash的时间减法:
得到 unix time 1256149273,然后使用减法……
代码: 全选
d=20091022002136
date -d "${d:0:8} ${d:9:2}:${d:10:2}:${d:11:2}" +%s
-
- 帖子: 10
- 注册时间: 2006-11-19 9:28
Re: awk问题请教
xzap 写了:处理时间的减法不知道怎么弄,用了个笨办法,不知道谁指点一下。楼主就将就着看吧,瞎写的,没测试。也就提供个思路代码: 全选
i=1 cat file |while read $j do if [ $i -eq 1 ] then old =`echo $j|awk -F ";"{print $1} ` oldurl=`echo $j|awk -F ";"{print $2} ` i=2 else new=`echo $j|awk -F ";"{print $1} ` newurl=`echo $j|awk -F ";"{print $2} ` y=`expr ${new:0:4} - ${old:0:4}` m=`expr ${new:4:2} - ${old:4:2}` d=`expr ${new:6:2} - ${old:6:2}` #还有时分秒的自己弄 echo "$oldurl和$newurl相差$y年$m月$d天" old=$new oldurl=$newurl fi done
这个倒是可以用,但是效率不高啊,现在每天的日志超过1G了,好长时间都解析不完
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: awk问题请教
代码: 全选
xiooli@XIOOLI> cat b
20091022002136;/index.html
20091022002137;/wel.html
20091022002145;/welc.html
20091022002187;/welco.html
20091022002189;/welcome.html
20091022002193;/welcome1.html
20091022002199;/welcome12.html
xiooli@XIOOLI> cat a.awk
{
interval = $1 - crt_tm
if(url)print interval,url
url = $2
crt_tm = $1
}
xiooli@XIOOLI> awk -F";" -f a.awk b
1 /index.html
8 /wel.html
42 /welc.html
2 /welco.html
4 /welcome.html
6 /welcome1.html
-
- 帖子: 10
- 注册时间: 2006-11-19 9:28
Re: awk问题请教
xiooli 写了:代码: 全选
xiooli@XIOOLI> cat b 20091022002136;/index.html 20091022002137;/wel.html 20091022002145;/welc.html 20091022002187;/welco.html 20091022002189;/welcome.html 20091022002193;/welcome1.html 20091022002199;/welcome12.html xiooli@XIOOLI> cat a.awk { interval = $1 - crt_tm if(url)print interval,url url = $2 crt_tm = $1 } xiooli@XIOOLI> awk -F";" -f a.awk b 1 /index.html 8 /wel.html 42 /welc.html 2 /welco.html 4 /welcome.html 6 /welcome1.html
谢谢!
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
Re: awk问题请教
代码: 全选
$ echo '20091022002136;/index.html
20091022002137;/wel.html
20091022002145;/welc.html
20091022002187;/welco.html
20091022002189;/welcome.html
20091022002193;/welcome1.html
20091022002199;/welcome12.html' | awk -F";" '{if(oldt){print $1-oldt,oldurl}oldt=$1;oldurl=$2}'
1 /index.html
8 /wel.html
42 /welc.html
2 /welco.html
4 /welcome.html
6 /welcome1.html
关注我的blog: ε==3
-
- 帖子: 61
- 注册时间: 2005-11-15 23:10
Re: awk问题请教
骨头都来了,下面的就看骨头吧。