Json 在jq命令的输出中追加字符串和特殊字符

Json 在jq命令的输出中追加字符串和特殊字符,json,jq,confluence-rest-api,Json,Jq,Confluence Rest Api,我有一个json文件GroupList.json: { "results": [ { "type": "known", "username": "USERID1", "displayName": "DISPLAYNAME1", "_links": { "

我有一个json文件GroupList.json:

{
  "results": [
    {
      "type": "known",
      "username": "USERID1",
      "displayName": "DISPLAYNAME1",
      "_links": {
        "self": "https://confluence.com/rest/api/user?key=123"
      },
      "_expandable": {
        "status": ""
      }
    },
    {
      "type": "known",
      "username": "USERID2",
      "displayName": "DISPLAYNAME2",
      "_links": {
        "self": "https://confluence.com/rest/api/user?key=1234"
      },
      "_expandable": {
        "status": ""
      }
    }
  ],
  "start": 0,
  "limit": 50000,
  "size": 2,
  "_links": {
    "self": "https://confluence.com/rest/api/group/GROUPNAME/member",
    "base": "https://confluence.com"
  }
}
我正在使用以下命令获取用户名: jq-r'.results|map(.username)| join(“,”)GroupList.json>UserNameList.txt

UserNameList.txt中的输出为: USERID1、USERID2

我想将输出修改为:

SPACEKEY:GROUPNAME:USERID1、USERID2


SPACEKEY和GROUPNAME是两个变量,其值在每次迭代中都会更改。

对于您的文件,以下调用将生成如下所示的输出:

jq -r --arg prefix "SPACEKEY : GROUPNAME : " '
   $prefix + (.results | map(.username) | join(","))
' GroupList.json
输出
您是否尝试使用--arg选项--arg name value我确实尝试过--arg,但无法制定命令来实现我的要求jq-r--arg foo“123”.结果| map($foo+.username)| join(“,”)file.txt>users.txt-这在我测试时有效。当您说出“每次迭代”时,结果集合中的每条记录都会显示空格键和groupname。这就是你想要的吗?那么,也许上面的样式可以吗?正如您提到的,每个记录都会显示空格键和组名。我不希望每一张唱片都有它们。现在它就像“spacekey groupname userid1”“spacekey groupname userid2”一样,我希望它是:“spacekey groupname userid1,userid2”
SPACEKEY : GROUPNAME : USERID1,USERID2