输出而非输入上的Awk模式匹配
我使用输出而非输入上的Awk模式匹配,awk,Awk,我使用awk从Apache日志中输出相关的实时数据,如下所示: tail-f访问日志| awk'{print$9、$1、$4、$7}' 工作很好,但它输出所有的图像,CSS等。所以我想将输出限制为仅HTML页面。如果我使用awk'/.html/{print$9,$1,$4,$7}它仍然匹配日志文件中的几乎所有行,因为引用者包括“.html”。但是我的输出没有引用者,所以有没有办法让awk仅在我的输出中匹配,而不是在输入中匹配?假设字段7包含您感兴趣的URL,请使用 awk '$7 ~ /\.ht
awk
从Apache日志中输出相关的实时数据,如下所示:
tail-f访问日志| awk'{print$9、$1、$4、$7}'代码>
工作很好,但它输出所有的图像,CSS等。所以我想将输出限制为仅HTML页面。如果我使用awk'/.html/{print$9,$1,$4,$7}代码>它仍然匹配日志文件中的几乎所有行,因为引用者包括“.html”。但是我的输出没有引用者,所以有没有办法让awk
仅在我的输出中匹配,而不是在输入中匹配?假设字段7包含您感兴趣的URL,请使用
awk '$7 ~ /\.html/ {print <your-field-list>}'
awk'$7~/\.html/{print}'
我认为正确的字段号取决于日志文件的格式。我可能错了
这告诉awk只有在第七个字段与后跟“html”的文字点匹配时才打印字段列表。请显示说明问题的示例数据。祝你好运
... | awk '
{
output = $9 OFS $1 OFS $4 OFS $7
if (output ~ /.html/) print output
}'