我需要解析和正则表达我的nginx日志以获取一组网址。例如,从我在网上找到的一些链接,这个awk命令将找到25个最受欢迎的网址:
cat access.log | awk '{ print $7 }' | sort | uniq -c | sort -rn | head -n 25
此行将找到具有特定模式的大多数请求的网址:
awk -F\" '($2 ~ "ref"){print $2}' access.log | awk '{print $2}' | sort | uniq -c | sort -r
我需要做的是将这两者结合起来,找到具有正则表达式模式的前x
个网址。例如,如果我想找到最受欢迎的网址" cupcake"在网址中,我将如何做到这一点。此外,我很难理解$
变量的含义。 $2
或$7
变量指的是什么?如果我能辨别出那时我想我会在路上。向正确的方向推进会很有帮助。感谢。
答案 0 :(得分:0)
awk将输入行拆分为列,每个列值可以由$ x引用。