我有一个文本文件,input.txt 中包含以下值
key1=value1\r
key2=value2
key3=value3\r
key4=value4
Run Code Online (Sandbox Code Playgroud)
需要 jq r 表达式通过删除“\r”将其转换为以下 json 格式
输出.json
{
"Environment": {
"Variables": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
}
Run Code Online (Sandbox Code Playgroud)
}
我尝试过下面的表达式并得到
jq -Rs [ split("\n")[] | select(length > 0) | split("=") | {(.[0]): .[1]} ]
Run Code Online (Sandbox Code Playgroud)
并得到以下输出
[
{
"key1ey1": "Value1\r"
},
{
"key2": "value2"
},
{
"key3": "value3\r"
},
{
"key4": "value4"
}
]
Run Code Online (Sandbox Code Playgroud)
jq
解决方案:
jq -sR '{"Environment":
{"Variables": [split("\n")[:-1][] | rtrimstr("\\r")
| split("=") | {(.[0]): .[1]}
] | add
}
}' input.txt
Run Code Online (Sandbox Code Playgroud)
输出:
{
"Environment": {
"Variables": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
}
}
Run Code Online (Sandbox Code Playgroud)
此解决方案假设=
不会出现在输入字符串的“值”部分中。
归档时间: |
|
查看次数: |
2634 次 |
最近记录: |