所以我对使用 awk 非常陌生,我试图找到仅以“.php”结尾的条目的结果。我似乎无法弄清楚如何只显示那些特定的条目。请帮忙。
cat apache.log | awk '{print $ 7} ' | sort | uniq -c | sort -nr
4 /main/set.php
4 /main/search.php
4 /main/call.php
4 /kernel/add.php
4 /finance/get.php
3 /system/request.php
3 /system/list.php
3 /printer/get.php
3 /kernel/get.php
3 /finance/search.php
2 /system/remove.php
1 /system/set.php?value=56107
1 /system/set.php?value=48930
1 /system/set.php?value=43706
1 /system/set.php?value=40718
1 /system/set.php?token=EuQWLAMegG
1 /system/set.php?timeout=36122
1 /system/set.php?session=syL_XvQzCc
1 /system/set.php?secret=Edtm_UVCwy
1 /system/set.php?name=APxewjhRBL
1 /system/set.php?key=bxYETGihzL
1 /system/set.php?aws=XYUERQbtu-
1 /system/set.php?aws=oiyfEeWzYk
1 /system/set.php?aws=dzTgcALKEV
答案1
如果您想搜索第七列中以 php 结尾的条目,您可以尝试这样的操作
awk '$7 ~ /\.php$/{print $7}'
答案2
您可以使用 grep 仅显示以 .php 结尾的内容,并使用带空格的引号(如“.php ”)。
插入到您的代码中(修复了 awk),如下所示:
cat apache.log | awk '{print $7}' | grep ".php " | sort | uniq -c | sort -nr