Jq:選擇一個 Prop 的鍵和值

Jq:選擇一個 Prop 的鍵和值

我有一個 json 翻譯文件,其結構如下。

{
  "STRING_ID_1": {
    "en": "Some englisch text.",
    "de": "Some german text."
  },
  "STRING_ID_2": {
    "en": "Some other englisch text.",
    "de": "Some other german text."
  },
  ...
}

使用它作為輸入,我需要產生兩個檔案:「en.json」和「de.json」。它們應該具有以下格式。

{
  "STRING_ID_1": "Some englisch text.",
  ...
}

{
  "STRING_ID_1": "Some german text.",
  ...
}

在我看來,這jq就是您想要在這裡使用的工具。誰能給我正確的命令?

答案1

$ cat file.json
{
  "STRING_ID_1": {
    "en": "Some englisch text.",
    "de": "Some german text."
  },
  "STRING_ID_2": {
    "en": "Some other englisch text.",
    "de": "Some other german text."
  }
}
$ jq 'with_entries(.value = .value.en)' file.json
{
  "STRING_ID_1": "Some englisch text.",
  "STRING_ID_2": "Some other englisch text."
}
$ jq 'with_entries(.value = .value.de)' file.json
{
  "STRING_ID_1": "Some german text.",
  "STRING_ID_2": "Some other german text."
}

重定向到其他檔案名稱以保存輸出。

此轉換將每個頂級鍵的值重寫為英語(或德語)字串的值,而不是鍵值對的物件。

相關內容