首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

awk编程有关问题

2012-10-11 
awk编程问题用shell,统计如下日志文件中连接成功的次数。……Oct 18 13:02:35.049 2005@Connect 192.21.134.1

awk编程问题
用shell,统计如下日志文件中连接成功的次数。

……
Oct 18 13:02:35.049 2005@Connect 192.21.134.10 success.
……
Oct 19 10:58:35.018 2005@Connect 119.53.21.88 success.
……
Oct 19 12:58:35.018 2005@Connect 60.21.134.10 failed.
Oct 19 13:40:37.627 2005@Connect 171.22.15.4 success.
Oct 19 13:43:47.017 2005@Connect 162.55.12.76 failed.
……
Oct 19 14:02:35.049 2005@Connect 192.21.45.110 success.
Oct 19 15:27:24.049 2005@Connect 221.23.14.130 failed.
……
Oct 20 15:21:54.113 2005@Connect 143.43.15.33 success.
……
$ awk 'BEGIN{if($NF~success)num++}END{print "Total success connection : "num}' log.txt  

用上面的命令执行后,输出num是1,这是怎么回事,大家帮帮忙啊!!!


[解决办法]
BEGIN是扫描文件开始前的准备, 就执行一次, 根本没有NF变量.

你应该在BEGIN{}里将num初始化为0, 然后在{}里做NF检查和num++, 最后在END里打印结果。
[解决办法]
google了一下,貌似这个可以:

Python code
awk -F" " 'BEGIN {num=0} {if($NF=="success.") num++} END {print num}' log.txt
[解决办法]
如果是我,就
$(grep success|wc -l)

热点排行