1
我有一個簡單的JSON對象,並想將其轉換爲bash中的屬性文件。將簡單的JSON對象轉換爲屬性文件
輸入:
{
"foo": "bar",
"abc": "def ghi"
}
預期輸出:
foo="bar"
abc="def ghi"
我有一個簡單的JSON對象,並想將其轉換爲bash中的屬性文件。將簡單的JSON對象轉換爲屬性文件
輸入:
{
"foo": "bar",
"abc": "def ghi"
}
預期輸出:
foo="bar"
abc="def ghi"
您可以使用to_entries
爲:
jq -r 'to_entries[]|"\(.key)=\"\(.value)\""' input.json
順便說一下,在Java屬性文件,你不需要引用值:
jq -r 'to_entries[]|"\(.key)=\(.value)"' input.json
實際上`to_entries'和`@sh'過濾器的使用只適用於簡單的 JSON對象(正如問題所述)。在我的情況(嵌套json)似乎我會使用npm的包「json-to-properties」
使用'@ sh'而不是自己引用值;這對於確保'{「鍵」:「\」value \「」}'正確引用「是必要的。 (''... |「\(.key)= \(。value | @sh)」'')。 – chepner
請解釋「@sh」實際上是什麼...... – bentzy
@chepner OP想寫一個屬性文件,這讓我想到Java。這些文件遵循與shell不同的語法規則。其實雙引號根本就沒有必要。那麼,該運作似乎期待他們。 – hek2mgl