我如何从日志中获取所有唯一PHP的列表进入我的网站



在我的日志中,我有许多看起来像这样的行:

mysitename.net 1.23.45.67 - - [10/Mar/2017:20:28:38 +0000] "GET /foldername/special/somefile.php HTTP/1.1" 200 2012

有什么方法可以将所有唯一的PHP陷入文件中,因此我有访问的服务器上任何/所有文件的列表?

我尝试了:

grep -i "GET [w]+.php" mylogfile.txt > results.txt

但不会返回任何行。

grep,我会这样做:

$ a=$'mysitename.net 1.23.45.67 - - [10/Mar/2017:20:28:38 +0000] "GET /foldername/special/somefile.php HTTP/1.1" 200 2012' 
$ grep -Eo 'GET.*php' <<<"$a"
GET /foldername/special/somefile.php

个人,尤其是在Mac中,我会选择Perl -Pe Oneliner,因为在所有平台中使用REGEX组在所有平台上都相同,将其与BackReference匹配。

在Bellow示例中,使用括号将整个输入字符串分为组。使用Perl替代(与SED相同),我们可以强迫Perl返回第三个输入组:

$ perl -pe 's/(.*)(GET )(.*.php)(.*)/3/g' <<<"$a" #if you want to include also the GET in your results then modify last part like .../23/g'
/foldername/special/somefile.php

最新更新