cap*_*ked 3 bash shell scripting json jq
我的文件中的日期看起来像
test,test
test1,test1
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这样:
{"test":"test","test1":"test1"}
Run Code Online (Sandbox Code Playgroud)
我为此目的尝试过 jqjq -R -s -c 'split("\n")'
但它的格式["test,test","test1,test1",""]
jq 1.5有inputs,它允许一个简单而有效的解决方案:
jq -R -n -c '[inputs|split(",")|{(.[0]):.[1]}] | add' input.txt
Run Code Online (Sandbox Code Playgroud)
重要提示:不要忘记-n( --null-input) 选项,否则您将丢失第一行。
如果您的 jq 没有inputs,那么是时候升级了(如果可能的话)。否则:
jq -R -s '
split("\n")
| map(if index(",") then split(",")|{(.[0]):.[1]}
else empty end)
| add' input.txt
Run Code Online (Sandbox Code Playgroud)