jqを使用してJSON配列にカンマ区切りリストフィールドを作成する

jqを使用してJSON配列にカンマ区切りリストフィールドを作成する

jqを使用して、JSON配列内の値をカンマで区切られた1行のリストにリンクしようとしています。 (末尾のカンマなし)

{
  "hardware": [
    "abc",
    "def",
    "ghi"
  ]
}

「abc、def、ghi」を作成

以下を使用して値を一緒に連結できます。

jq -jr '(.hardware[])' input.json

abcdefghi

カンマとスペースを挿入してみましたが、機能しません。

jq -jr '(.hardware[]|join(", ")' 

jq: error: syntax error, unexpected $end (Unix shell quoting issues?) at <top-level>, line 1:

(.hardware[]|join(", ")

誰でも使用する正しい構文を教えてもらえますか?

ありがとう

葉巻電車

ベストアンサー1

あなたが探している

jq -r '.hardware | join(", ")'

公開されたバージョンの構文エラーは、最初に一致(するものがないために発生します)が、とにかくjoinすべての値を一度に提供する必要があるため(一度に1つの値を渡す).hardwareよりも優れています。.hardware[]

おすすめ記事