![Jq:選擇一個 Prop 的鍵和值](https://rvso.com/image/178463/Jq%EF%BC%9A%E9%81%B8%E6%93%87%E4%B8%80%E5%80%8B%20Prop%20%E7%9A%84%E9%8D%B5%E5%92%8C%E5%80%BC.png)
我有一個 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."
}
重定向到其他檔案名稱以保存輸出。
此轉換將每個頂級鍵的值重寫為英語(或德語)字串的值,而不是鍵值對的物件。