JQ的日常使用

简介: 在日常的使用过程中,我们可能会遇到nginx 日志格式为json,在分析过程中,就需要专业的工具对其进行格式化过滤处理,给大家推荐一下jq这个工具.

整理关于jq分析nginx日志的使用例子

jq的使用

在日常的使用过程中,我们可能会遇到nginx 日志格式为json,在分析过程中,就需要专业的工具对其进行格式化过滤处理,给大家推荐一下jq这个工具.
下面我就列举一下常用的jq 命令
1、筛选出指定的字段值:

cat test.log | jq -c '.upstream_addr,.upstream_response_time’  

2、 重新组合为新的一个json格式

cat test.log | jq -c '{"upstream":.upstream_addr,"time":.upstream_response_time}’

3、添加过滤条件,筛选出响应时间大于10秒的请求连接,使用到jq的if...then...else...end 表达式,tonumber目的是把字符串转化成数字类型

cat test.log | jq 'if (.request_time|tonumber) >= 10  then .request_time,.url else empty end' | more
cat test.log| jq 'if (.request_length|tonumber) >= 10000  then {"r":.request_length,"q":.body_bytes_sent,"u":.request_uri,"t":.time_local} else empty end' | more

4、使用正则表达式

cat  test.log | jq -c  'if(.upstream_response_time|capture("(?<a>\\d+\\.\\d+)")|.a|tonumber)>5  then .  else empty end'

后期继续更新

目录
相关文章
|
4月前
|
JavaScript 前端开发 API
jq之选择器|2-2
jq之选择器|2-2
35 6
jq之选择器|2-2
|
4月前
|
JavaScript 前端开发
jq事件2-8
jq事件2-8
|
4月前
|
JavaScript 前端开发 API
jq修改dom|2-6
jq修改dom|2-6
|
4月前
|
JavaScript 前端开发 Java
jq操作dom|2-5
jq操作dom|2-5
|
5月前
|
JavaScript
将jq转为原生js格式
将jq转为原生js格式
44 2
|
JSON JavaScript 数据格式
JQ遍历实现的场景
场景要求我们使用JQ将数据绑定到对于的位置上如下面两个图所示,从基础代码来看,我们需要使用JQ的遍历来简单地达到我们的预期目标,如果不使用JQ遍历的话就会造成我们需要一个盒子一个盒子地去赋值,造成代码冗余,这也是体现了JQ遍历的重要性。
120 0
JQ遍历实现的场景
|
XML JSON Ubuntu
|
JavaScript
jq insertBefore 的返回值
关于jq 的insertBefore 方法的返回值 先来说一下它的用法: insertBefore() 方法在被选元素之前插入 HTML 标记或已有的元素。 注释:如果该方法用于已有元素,这些元素会被从当前位置移走,然后被添加到被选元素之前。
950 0
|
Web App开发
|
前端开发