
我有一個 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."
}
重定向到其他檔案名稱以保存輸出。
此轉換將每個頂級鍵的值重寫為英語(或德語)字串的值,而不是鍵值對的物件。