默认情况下,gh
命令的结果以基于行的纯文本格式输出。某些命令支持传递 --json
标志,它将输出转换为 JSON 格式。一旦转换为 JSON,就可以通过添加 --jq
或 --template
标志,根据所需的格式字符串进一步格式化输出。这对于选择数据子集、创建新的数据结构、以不同格式显示数据或作为另一个命令行脚本的输入非常有用。
--json
标志需要一个逗号分隔的字段列表来获取。要查看命令的可能的 JSON 字段名,请在运行命令时省略 --json
标志的字符串参数。请注意,必须传递 --json
标志和字段名才能使用 --jq
或 --template
标志。
--jq
标志需要一个以 jq 查询语法表示的字符串参数,并且只打印与查询匹配的 JSON 值。jq 查询可用于从数组中选择元素,从对象中选择字段,创建新的数组等等。该系统不需要安装 jq
实用程序即可使用此格式化指令。当连接到终端时,输出会自动以漂亮格式打印。要了解 jq 查询语法,请参阅:https://jqlang.github.io/jq/manual/
--template
标志需要一个以 Go 模板语法表示的字符串参数,并且只打印与查询匹配的 JSON 值。除了标准库中的 Go 模板函数之外,以下函数也可以与此格式化指令一起使用
autocolor
: 类似于 color
,但只向终端发出颜色
color <style> <input>
: 使用 https://github.com/mgutz/ansi 对输入进行着色
join <sep> <list>
: 使用分隔符连接列表中的值
pluck <field> <list>
: 收集输入中所有项的字段的值
tablerow <fields>...
: 将输出中的字段垂直对齐,作为表格
tablerender
: 在适当的位置渲染由 tablerow 添加的字段
timeago <time>
: 将时间戳渲染为相对于现在的值
timefmt <format> <time>
: 使用 Go 的 Time.Format
函数格式化时间戳
truncate <length> <input>
: 确保输入适合长度
hyperlink <url> <text>
: 渲染终端超链接
要了解有关 Go 模板的更多信息,请参阅:https://golang.ac.cn/pkg/text/template/.
示例
另请参阅