Command line 如何计算在Apache日志文件中访问不同PDF文件的次数?

Command line 如何计算在Apache日志文件中访问不同PDF文件的次数?,command-line,Command Line,我有一个日志文件,其中包含整个服务器的流量。该服务器服务于多个域,但我知道我要统计的所有PDF文件都在/some/directory/中 我知道,如果我将该目录grep为'PDF'扩展名,我可以获得我想要的所有PDF文件的列表 然后,如何计算从命令行分别访问每个PDF的次数?使用grep识别PDF中的行,然后使用wc-l计算找到的行数: grep /your/pdf logfile | wc -l 您还可以检查200个回复wrt 302-即,如果用户只访问了一个页面或完整文档(一些pdf阅读器

我有一个日志文件,其中包含整个服务器的流量。该服务器服务于多个域,但我知道我要统计的所有PDF文件都在/some/directory/中

我知道,如果我将该目录grep为'PDF'扩展名,我可以获得我想要的所有PDF文件的列表


然后,如何计算从命令行分别访问每个PDF的次数?

使用
grep
识别PDF中的行,然后使用
wc-l
计算找到的行数:

grep /your/pdf logfile | wc -l

您还可以检查200个回复wrt 302-即,如果用户只访问了一个页面或完整文档(一些pdf阅读器一次只加载一个页面)

使用
grep
用您的pdf标识行,然后使用
wc-l
计算找到的行数:

grep /your/pdf logfile | wc -l

您还可以检查wrt 302中的200个响应-即,如果用户只访问了一页或完整文档(某些pdf阅读器一次只加载一页)

Grep在日志中查找pdf文件的名称,并使用
-c
选项统计出现次数。例如:

grep -c myfile.pdf apache.log

如果有数百个文件,请创建一个包含所有文件名列表的文件,例如

$ cat filelist.txt

foo.pdf
bar.pdf
然后在循环中使用grep

while read filename
do 
   COUNT=$(grep -c $filename apache.log) 
   echo $filename:$COUNT 
done < filelist.txt
读取文件名时
做
COUNT=$(grep-c$文件名apache.log)
echo$filename:$COUNT
完成

这将打印出每个pdf文件在日志中出现的次数。

Grep显示日志中pdf文件的名称,并使用
-c
选项统计出现次数。例如:

grep -c myfile.pdf apache.log

如果有数百个文件,请创建一个包含所有文件名列表的文件,例如

$ cat filelist.txt

foo.pdf
bar.pdf
然后在循环中使用grep

while read filename
do 
   COUNT=$(grep -c $filename apache.log) 
   echo $filename:$COUNT 
done < filelist.txt
读取文件名时
做
COUNT=$(grep-c$文件名apache.log)
echo$filename:$COUNT
完成

这将打印出每个pdf文件在日志中出现的次数。

这比一行稍长,但它将为您提供更好的摘要。您可以使用pdfs和apacheaccess_日志文件的路径来修改它,只需将其粘贴到命令行或将其放入bash脚本中即可

 for file in `ls /path/to/pdfs | grep pdf `
 do
  COUNT=`grep -c $file access_log`
  echo $file $COUNT
 done

这比一行长一点,但会给你一个更好的总结。您可以使用pdfs和apacheaccess_日志文件的路径来修改它,只需将其粘贴到命令行或将其放入bash脚本中即可

 for file in `ls /path/to/pdfs | grep pdf `
 do
  COUNT=`grep -c $file access_log`
  echo $file $COUNT
 done

我需要找到大约100个单独的PDF文件,并分别获取它们的统计信息。我需要找到大约100个单独的PDF文件,并分别获取它们的统计信息。抱歉,这不是无用的,因为它是有效的。您的
grep-c
解决方案更加优雅。很抱歉,这不是无用的,因为它可以工作。您的
grep-c
解决方案更加优雅。