如何使用 JQ 打印任意字符串?

Gru*_*ber 2 string json jq

我想用 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)以获得您的结果。