我正在使用awk
从我的Apache日志中输出相关的实时数据,如下所示:
tail -f access_log | awk '{print $9, $1, $4, $7}';
效果很好,但它也会输出所有图像,CSS等。所以我想将输出限制为只有HTML页面。如果我使用awk '/.html/ {print $9, $1, $4, $7}';
它仍然匹配日志文件中的几乎所有行,因为引用者包含“.html”。我的输出没有引用者,所以有没有办法让awk
仅在我的输出中匹配,而不是输入?
答案 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
}'