任何人给我解释一下这个grep命令grep命令解释需要
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt \
| awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}' | wc -l
任何人给我解释一下这个grep命令grep命令解释需要
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt \
| awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}' | wc -l
有三个过程在管道:
grep
查找包含这个词从日志文件“点击”所有的线路和经过他们到awk
。awk
使用:
分隔符将行分隔成字段。如果第三个字段大于指定的hr
且第四个字段大于指定的mins
,但它不打印出行,但我没有看到您在设置$hr
和$min
的位置。wc
对由awk
打印的行进行计数。非常感谢。很好的解释。 – 2013-03-20 05:23:13
Grep
找到包含字符串click
的所有行。这些行传递到awk
,它只打印第三个字段大于或等于shell变量$hr
,第四个字段大于或等于shell变量$min
的行,其中字段分隔符是:
(尽管这些shell变量不会因报价而扩大)。然后用wc -l
来计数匹配的数量。目前,由于shell变量未被扩展,管道将不显示预计的行数。
你的管道可以更换(固定)用一个简单的awk
脚本:
$ hr=3
$ min=23
$ awk -F: -v h="$hr" -v m="$min" '/click/ && $3 >= h && $4 >= m{c++}END{print c}'
这就是我需要的 grep“click”localhost_access_log.2013-03-15.txt | awk'{if($ 9!= 301)print $ 0}'| wc -l grep“imp”localhost_access_log.2013-03-15.txt | awk'{if($ 9!= 301)print $ 0}'| wc -l 如果在过去15分钟内条目数大于10,应发送电子邮件。 – 2013-03-19 13:18:08
grep "click" /opt/tomcat/logs/localhost_access_log.2013-03-19.txt
给定文件
awk -F: '{if (($3 >= $hr) && ($4 >= $min)) print $0}'
分割使用来自grep的每个结果的搜索词语click
分隔符:
。如果第3个元素大于$hr
且第4个元素大于$min
,请打印第1个元素。
wc -l
计算所有打印元素。
因此,看起来好像该命令计算日志文件中有多少行的时间戳大于指定的小时和分钟。
'grep'过滤'.txt'文件中包含字符串'click'的行。这真的是你的问题吗? – 2013-03-19 12:43:47