我有一个文本文件,其中包含以下值 input.txt
head
需要jq rexpression通过同时删除“ \ r”将其转换为json格式以下
output.json
key1=value1\r
key2=value2
key3=value3\r
key4=value4
}
我尝试了以下表达式并获得
{
"Environment": {
"Variables": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
}
并获得以下输出
jq -Rs [ split("\n")[] | select(length > 0) | split("=") | {(.[0]): .[1]} ]
答案 0 :(得分:2)
jq
解决方案:
jq -sR '{"Environment":
{"Variables": [split("\n")[:-1][] | rtrimstr("\\r")
| split("=") | {(.[0]): .[1]}
] | add
}
}' input.txt
输出:
{
"Environment": {
"Variables": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
}
}
答案 1 :(得分:1)
以下方法允许var data = [{ optionName: 'LC_10', parentFilterKey: 'automatedTags' }, { optionName: 'LC_11', parentFilterKey: 'automatedTags' }, { optionName: 'LC_12', parentFilterKey: 'automatedTags' }, { optionName: 'V1', parentFilterKey: 'Vendor' }, { optionName: 'V2', parentFilterKey: 'Vendor' }, { optionName: 'V3', parentFilterKey: 'Vendor' }],
result = data.reduce((r, { optionName, parentFilterKey }) => {
(r[parentFilterKey] = r[parentFilterKey] || []).push(optionName);
return r;
}, {});
console.log(result);
出现在=
字符串的值部分中:
调用:jq -n -R -f program.jq input.txt
program.jq:
key=value