输出未输入的awk模式匹配

时间:2011-07-21 22:00:54

标签: awk

我正在使用awk从我的Apache日志中输出相关的实时数据,如下所示:

tail -f access_log | awk '{print $9, $1, $4, $7}';

效果很好,但它也会输出所有图像,CSS等。所以我想将输出限制为只有HTML页面。如果我使用awk '/.html/ {print $9, $1, $4, $7}';它仍然匹配日志文件中的几乎所有行,因为引用者包含“.html”。我的输出没有引用者,所以有没有办法让awk仅在我的输出中匹配,而不是输入?

2 个答案:

答案 0 :(得分:2)

假设字段7包含您感兴趣的URL,请使用

awk '$7 ~ /\.html/ {print <your-field-list>}'

我认为正确的字段编号取决于日志文件的格式。我错了。

只有当第七个字段与后跟“html”的文字点匹配时,才会告诉awk打印字段列表。

答案 1 :(得分:0)

... | awk '
{ 
  output = $9 OFS $1 OFS $4 OFS $7
  if (output ~ /.html/) print output
}'