Files
reference/docs/jq.html
2025-05-11 17:34:02 +00:00

277 lines
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" data-color-mode="dark">
<head>
<meta charset="utf-8">
<title>jq 备忘清单
&#x26; jq cheatsheet &#x26; Quick Reference</title>
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta description="这个快速参考备忘单提供了使用 jq 命令的各种方法。
入门,为开发人员分享快速参考备忘单。">
<meta keywords="jq,reference,Quick,Reference,cheatsheet,cheat,sheet">
<meta name="author" content="jaywcjlove">
<meta name="license" content="MIT">
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
<link href="../style/style.css" rel="stylesheet">
<link href="../style/katex.css" rel="stylesheet">
</head>
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
</svg>
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/jq.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
</svg>
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="jq-备忘清单"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="1em" width="1em">
<path d="M107.946667 838.4l57.173333 23.893333v-385.28l-103.68 250.026667c-17.493333 43.52 3.413333 93.44 46.506667 111.36z m832-157.866667L728.32 169.813333a85.888 85.888 0 0 0-77.226667-52.48c-11.093333 0-22.613333 1.706667-33.706666 6.4L302.933333 253.866667a85.290667 85.290667 0 0 0-46.08 110.933333l211.626667 510.72a85.248 85.248 0 0 0 110.933333 46.08l314.026667-130.133333a85.077333 85.077333 0 0 0 46.506667-110.933334zM336.213333 373.333333c-23.466667 0-42.666667-19.2-42.666666-42.666666s19.2-42.666667 42.666666-42.666667 42.666667 19.2 42.666667 42.666667-19.2 42.666667-42.666667 42.666666z m-85.333333 469.333334c0 46.933333 38.4 85.333333 85.333333 85.333333h61.866667l-147.2-355.84v270.506667z"></path>
</svg><a aria-hidden="true" tabindex="-1" href="#jq-备忘清单"><span class="icon icon-link"></span></a>jq 备忘清单</h1><div class="wrap-body">
<p>这个快速参考备忘单提供了使用 <a href="https://stedolan.github.io/jq/">jq</a> 命令的各种方法。</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#介绍">介绍</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#选项">选项</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#学习示例">学习示例</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#获取一个键的值">获取一个键的值</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#数组运算">数组运算</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#构造一个数组对象">构造一个数组/对象</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#计算一个值的长度">计算一个值的长度</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#取出数组中的键">取出数组中的键</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#使用多个过滤器">使用多个过滤器</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#管道传递给下一个过滤器">管道传递给下一个过滤器</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#条件语句判断">条件语句判断</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#每个输入调用过滤器">每个输入调用过滤器</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#条件判断">条件判断</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串插入值并进行运算">字符串插入值并进行运算</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串转-json-数组">字符串转 JSON 数组</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#更改发布注册表">更改发布注册表</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="介绍"><a aria-hidden="true" tabindex="-1" href="#介绍"><span class="icon icon-link"></span></a>介绍</h3><div class="wrap-body">
<p>jq 就像用于 JSON 数据的 <a href="./sed.html">sed</a> - 您可以使用它来切片、过滤、映射和转换结构化数据</p>
<ul>
<li><a href="https://stedolan.github.io/jq/">jq 官网</a> <em>(stedolan.github.io)</em></li>
<li><a href="https://jaywcjlove.github.io/linux-command/c/jq.html">jq 命令使用</a> <em>(jaywcjlove.github.io)</em></li>
</ul>
<p>安装</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> jq <span class="token comment"># Debian&#x26; Ubuntu</span>
</span><span class="code-line">$ <span class="token function">sudo</span> dnf <span class="token function">install</span> jq <span class="token comment"># Fedora </span>
</span><span class="code-line">$ <span class="token function">sudo</span> <span class="token function">zypper</span> <span class="token function">install</span> jq <span class="token comment"># openSUSE</span>
</span><span class="code-line">$ <span class="token function">sudo</span> pacman <span class="token parameter variable">-S</span> jq <span class="token comment"># Arch</span>
</span><span class="code-line">$ brew <span class="token function">install</span> jq <span class="token comment"># macOS &#x26; Homebrew</span>
</span><span class="code-line">$ port <span class="token function">install</span> jq <span class="token comment"># macOS &#x26; MacPorts</span>
</span></code></pre>
<p>语法</p>
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ jq <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token operator">&#x3C;</span>jq filter<span class="token operator">></span> <span class="token punctuation">[</span>file<span class="token punctuation">..</span>.<span class="token punctuation">]</span>
</span><span class="code-line">$ jq <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token parameter variable">--args</span> <span class="token operator">&#x3C;</span>jq filter<span class="token operator">></span> <span class="token punctuation">[</span>strings<span class="token punctuation">..</span>.<span class="token punctuation">]</span>
</span><span class="code-line">$ jq <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token parameter variable">--jsonargs</span> <span class="token operator">&#x3C;</span>jq filter<span class="token operator">></span> <span class="token punctuation">[</span>JSON_TEXTS<span class="token punctuation">..</span>.<span class="token punctuation">]</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-2"><div class="wrap-header h3wrap"><h3 id="选项"><a aria-hidden="true" tabindex="-1" href="#选项"><span class="icon icon-link"></span></a>选项</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-c</code></td><td>紧凑而不是漂亮的输出</td></tr><tr><td align="left"><code>-n</code></td><td>使用<code>null</code>作为单个输入值</td></tr><tr><td align="left"><code>-e</code></td><td>根据输出设置退出状态代码</td></tr><tr><td align="left"><code>-s</code></td><td>将所有输入读取(吸取)到数组中;应用过滤器</td></tr><tr><td align="left"><code>-r</code></td><td>输出原始字符串而不是JSON文本</td></tr><tr><td align="left"><code>-R</code></td><td>读取原始字符串而不是JSON文本</td></tr><tr><td align="left"><code>-C</code></td><td>为 JSON 着色</td></tr><tr><td align="left"><code>-M</code></td><td>单色不要为JSON着色</td></tr><tr><td align="left"><code>-S</code></td><td>在输出上排序对象的键</td></tr><tr><td align="left"><code>--tab</code></td><td>使用制表符进行缩进</td></tr><tr><td align="left"><code>--arg a v</code></td><td>将变量 <code>$a</code> 设置为 value <code>&#x3C;v></code></td></tr><tr><td align="left"><code>--argjson a v</code></td><td>将变量 <code>$a</code> 设置为 JSON value <code>&#x3C;v></code></td></tr><tr><td align="left"><code>--slurpfile a f</code></td><td>将变量 <code>$a</code> 设置为从<code>&#x3C;f></code>读取的JSON文本数组</td></tr><tr><td align="left"><code>--rawfile a f</code></td><td>将变量 <code>$a</code> 设置为包含<code>&#x3C;f></code>内容的字符串</td></tr><tr><td align="left"><code>--args</code></td><td>其余参数是字符串参数,而不是文件</td></tr><tr><td align="left"><code>--jsonargs</code></td><td>其余的参数是JSON参数而不是文件</td></tr><tr><td align="left"><code>--</code></td><td>终止参数处理</td></tr></tbody></table>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="学习示例"><a aria-hidden="true" tabindex="-1" href="#学习示例"><span class="icon icon-link"></span></a>学习示例</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="获取一个键的值"><a aria-hidden="true" tabindex="-1" href="#获取一个键的值"><span class="icon icon-link"></span></a>获取一个键的值</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'{"foo": 42, "bar": "less interesting data"}'</span> <span class="token operator">|</span> jq <span class="token string">'.foo'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token number">42</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="数组运算"><a aria-hidden="true" tabindex="-1" href="#数组运算"><span class="icon icon-link"></span></a>数组运算</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]'</span> <span class="token operator">|</span> jq <span class="token string">'.[1]'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token string">"name"</span><span class="token builtin class-name">:</span> <span class="token string">"XML"</span>,
</span><span class="code-line"> <span class="token string">"good"</span><span class="token builtin class-name">:</span> <span class="token boolean">false</span>
</span><span class="code-line"><span class="token punctuation">}</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="构造一个数组对象"><a aria-hidden="true" tabindex="-1" href="#构造一个数组对象"><span class="icon icon-link"></span></a>构造一个数组/对象</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'{"user":"stedolan","titles":["JQ Primer", "More JQ"]}'</span> <span class="token operator">|</span> jq <span class="token string">'{user, title: .titles[]}'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token string">"user"</span><span class="token builtin class-name">:</span> <span class="token string">"stedolan"</span>,
</span><span class="code-line"> <span class="token string">"title"</span><span class="token builtin class-name">:</span> <span class="token string">"JQ Primer"</span>
</span><span class="code-line"><span class="token punctuation">}</span>
</span><span class="code-line"><span class="token punctuation">{</span>
</span><span class="code-line"> <span class="token string">"user"</span><span class="token builtin class-name">:</span> <span class="token string">"stedolan"</span>,
</span><span class="code-line"> <span class="token string">"title"</span><span class="token builtin class-name">:</span> <span class="token string">"More JQ"</span>
</span><span class="code-line"><span class="token punctuation">}</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="计算一个值的长度"><a aria-hidden="true" tabindex="-1" href="#计算一个值的长度"><span class="icon icon-link"></span></a>计算一个值的长度</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'[[1,2], "string", {"a":2}, null]'</span> <span class="token operator">|</span> jq <span class="token string">'.[] | length'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token number">2</span>
</span><span class="code-line"><span class="token number">6</span>
</span><span class="code-line"><span class="token number">1</span>
</span><span class="code-line"><span class="token number">0</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="取出数组中的键"><a aria-hidden="true" tabindex="-1" href="#取出数组中的键"><span class="icon icon-link"></span></a>取出数组中的键</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'{"abc": 1, "abcd": 2, "Foo": 3}'</span> <span class="token operator">|</span> jq <span class="token string">'keys'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">[</span>
</span><span class="code-line"> <span class="token string">"Foo"</span>,
</span><span class="code-line"> <span class="token string">"abc"</span>,
</span><span class="code-line"> <span class="token string">"abcd"</span>
</span><span class="code-line"><span class="token punctuation">]</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="使用多个过滤器"><a aria-hidden="true" tabindex="-1" href="#使用多个过滤器"><span class="icon icon-link"></span></a>使用多个过滤器</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'{ "foo": 42, "bar": "something else", "baz": true}'</span> <span class="token operator">|</span> jq <span class="token string">'.foo, .bar'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token number">42</span>
</span><span class="code-line"><span class="token string">"something else"</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="管道传递给下一个过滤器"><a aria-hidden="true" tabindex="-1" href="#管道传递给下一个过滤器"><span class="icon icon-link"></span></a>管道传递给下一个过滤器</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'[{"name":"JSON", "good":true}, {"name":"XML", "good":false}]'</span> <span class="token operator">|</span> jq <span class="token string">'.[] | .name'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token string">"JSON"</span>
</span><span class="code-line"><span class="token string">"XML"</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="条件语句判断"><a aria-hidden="true" tabindex="-1" href="#条件语句判断"><span class="icon icon-link"></span></a>条件语句判断</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'[1,5,3,0,7]'</span> <span class="token operator">|</span> jq <span class="token string">'map(select(. >= 2))'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">[</span>
</span><span class="code-line"> <span class="token number">5</span>,
</span><span class="code-line"> <span class="token number">3</span>,
</span><span class="code-line"> <span class="token number">7</span>
</span><span class="code-line"><span class="token punctuation">]</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="每个输入调用过滤器"><a aria-hidden="true" tabindex="-1" href="#每个输入调用过滤器"><span class="icon icon-link"></span></a>每个输入调用过滤器</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'[1,2,3]'</span> <span class="token operator">|</span> jq <span class="token string">'map(.+1)'</span>
</span></code></pre>
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">[</span>
</span><span class="code-line"> <span class="token number">2</span>,
</span><span class="code-line"> <span class="token number">3</span>,
</span><span class="code-line"> <span class="token number">4</span>
</span><span class="code-line"><span class="token punctuation">]</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="条件判断"><a aria-hidden="true" tabindex="-1" href="#条件判断"><span class="icon icon-link"></span></a>条件判断</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'2'</span> <span class="token operator">|</span> jq <span class="token string">'if . == 0 then "zero" elif . == 1 then "one" else "many" end'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token string">"many"</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符串插入值并进行运算"><a aria-hidden="true" tabindex="-1" href="#字符串插入值并进行运算"><span class="icon icon-link"></span></a>字符串插入值并进行运算</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'42'</span> <span class="token operator">|</span> jq <span class="token string">'"The input was \(.), which is one less than \(.+1)"'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line"><span class="token string">"The input was 42, which is one less than 43"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符串转-json-数组"><a aria-hidden="true" tabindex="-1" href="#字符串转-json-数组"><span class="icon icon-link"></span></a>字符串转 JSON 数组</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-bash code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'a b c d'</span> <span class="token operator">|</span> jq <span class="token parameter variable">-R</span> <span class="token string">'split(" ")'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>输出结果</p>
<pre class="wrap-text "><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">[</span>
</span><span class="code-line"> <span class="token string">"a"</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token string">"b"</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token string">"c"</span><span class="token punctuation">,</span>
</span><span class="code-line"> <span class="token string">"d"</span>
</span><span class="code-line"><span class="token punctuation">]</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="更改发布注册表"><a aria-hidden="true" tabindex="-1" href="#更改发布注册表"><span class="icon icon-link"></span></a>更改发布注册表</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable"><span class="token variable">$(</span>jq <span class="token string">'.publishConfig.registry = "https://npm.pkg.github.com"'</span> package.json<span class="token variable">)</span></span>"</span> <span class="token operator">></span> package.json
</span></code></pre>
<p>将组织范围添加到包名称</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable"><span class="token variable">$(</span>jq <span class="token string">'.name = "@scope/package"'</span> package.json<span class="token variable">)</span></span>"</span> <span class="token operator">></span> package.json
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-not-exist"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
<ul>
<li><a href="https://stedolan.github.io/jq/">jq 官网</a> <em>(stedolan.github.io)</em></li>
<li><a href="https://jaywcjlove.github.io/linux-command/c/jq.html">jq 命令使用</a> <em>(jaywcjlove.github.io)</em></li>
</ul>
</div></div><div class="h2wrap-body"></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&#x26;A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html>