Jq工具操作json随记:修订间差异

来自三线的随记
无编辑摘要
无编辑摘要
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
* jq是一款非常强大的用于处理json的工具 ([https://stedolan.github.io/jq/manual/#Invokingjq official doc])
* jq是一款非常强大的用于处理json的工具 ([https://jqlang.github.io/jq/manual/ official doc])


=== 利用jq批量解码docker login内容 ===
=== 利用jq批量解码docker login内容 ===
第5行: 第5行:


=== 利用 jq 只输出匹配value 的数组 ===
=== 利用 jq 只输出匹配value 的数组 ===
全匹配:
select(boolean_expression)
select(boolean_expression)
全匹配:
  echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source=="LDAP-ldap")'
  echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source=="LDAP-ldap")'
忽略大小写泛匹配:
忽略大小写泛匹配:
test(val), test(regex; flags)
  echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source | test("ldap";"i"))'
  echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source | test("ldap";"i"))'


=== 利用jq去除不希望要的内容重新组成 jq ===
=== 利用jq去除不需要的内容重新组成 jq ===
  echo '{"name":"andy.zhou","source":"LDAP-ldap","test":"1111111"}' | jq '.|{name, test}'
  echo '{"name":"andy.zhou","source":"LDAP-ldap","test":"1111111"}' | jq '.|{name, test}'
=== 将多个 json 对象合并为一个数组 ===
echo '{"name":"name1","source":"LDAP-ldap","test":"1111111"}{"name":"name2","source":"LDAP-ldap","test":"1111111"}' | jq -s '.|map({name, test})'
[[Jq修改docker-daemon.json开启关闭live-restore]]
[[Jq修改docker-daemon.json开启关闭live-restore]]


[[使用jq批量修改es_index_template的lifecycle配置]]
[[使用jq批量修改es_index_template的lifecycle配置]]
[[分类:Linux]]
[[分类:Linux]]

2024年7月17日 (三) 14:57的最新版本

  • jq是一款非常强大的用于处理json的工具 (official doc)

利用jq批量解码docker login内容

jq -r ".auths | .[].auth|@base64d" ~/.docker/config.json

利用 jq 只输出匹配value 的数组

全匹配:

select(boolean_expression)

echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source=="LDAP-ldap")'

忽略大小写泛匹配:

test(val), test(regex; flags)

echo '{"name":"andy.zhou","source":"LDAP-ldap"}{"name":"annie.chen","source":"123333"}' | jq 'select (.source | test("ldap";"i"))'

利用jq去除不需要的内容重新组成 jq

echo '{"name":"andy.zhou","source":"LDAP-ldap","test":"1111111"}' | jq '.|{name, test}'

将多个 json 对象合并为一个数组

echo '{"name":"name1","source":"LDAP-ldap","test":"1111111"}{"name":"name2","source":"LDAP-ldap","test":"1111111"}' | jq -s '.|map({name, test})'


Jq修改docker-daemon.json开启关闭live-restore

使用jq批量修改es_index_template的lifecycle配置