我想用 JQ 任意组合的字符串打印。
假设我有一个 json 文档 * 如下:
[{
"first_name": "Angela",
"last_name": "Sleney",
"email": "asleney0@nytimes.com"
}, {
"first_name": "Clint",
"last_name": "Ducroe",
"email": "cducroe1@aboutads.info"
}, {
"first_name": "Aurthur",
"last_name": "Tebb",
"email": "atebb2@fastcompany.com"
}]
Run Code Online (Sandbox Code Playgroud)
和上面的数据让我们说只是例如(可以是任何字符串)我想用 JQ 3 行打印如下:
Email address for user Angela Sleney is "asleney0@nytimes.com"
Email address for user Clint Ducroe is "cducroe1@aboutads.info"
Email address for user Aurthur Tebb is "atebb2@fastcompany.com"
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我能做的最好的事情是每行打印数据 1:
jq -r '.[] | .first_name, .last_name, .email, ""'
Run Code Online (Sandbox Code Playgroud)
但结果是
jq -r '.[] | .first_name, .last_name, .email, ""'
Run Code Online (Sandbox Code Playgroud)
*注意:数据来自随机生成器,没有真实姓名或电子邮件。
小智 5
我试着在jqplay上玩你的 json 。
我得到了想要的结果 -
Email address for user Angela Sleney is "asleney0@nytimes.com"
Email address for user Clint Ducroe is "cducroe1@aboutads.info"
Email address for user Aurthur Tebb is "atebb2@fastcompany.com"
Run Code Online (Sandbox Code Playgroud)
使用此过滤器 -
.[] | "Email address for user \(.first_name) \(.last_name) is \"\(.email)\""
Run Code Online (Sandbox Code Playgroud)
玩弄string interpolation \(foo)以获得您的结果。