Skip to content

Latest commit

 

History

History
27 lines (24 loc) · 931 Bytes

zq_vs_jq.md

File metadata and controls

27 lines (24 loc) · 931 Bytes

zq与jq的对比

zq和jq都能用于进行json的操作运算,选择是一个问题。考虑到效率问题,大的原则是:能用zq就先用zq,在zq完成不了的情况下再用jq。

  • 速度:zq快
  • 查询语言的友好性:zq更符合技术思维
  • 中文key:jq支持,zq不支持
echo '{}' | zq -j 'a:=1' -
{"a":1}
echo '{}' | zq -j '"测试":=1' -
zq: error parsing Zed at column 9:
"测试":=1
    === ^ ===
    
echo '{}' | jq -c '.a=1'
{"a":1}
echo '{}' | jq -c '."测试"=1'
{"测试":1}
  • 定义函数:jq支持,zq不支持
  • ip解析函数:zq支持,jq不支持,比如ipv6地址的归一化处理,zq直接一个cast搞定:
echo '{"nips":["1.1.1.1","2405:57c0:0000:f000:0000:0000:0000:00b2","2405:57c0:0:f000::b3"]}' | zq -j 'nips:=(over nips | cast(this, <ip>))' -
{"nips":["1.1.1.1","2405:57c0:0:f000::b2","2405:57c0:0:f000::b3"]}
  • 文档和问题解答:jq多,zq少