shell 将“=”分隔值文件转换为“:“json文件

1cklez4t  于 2023-05-01  发布在  Shell
关注(0)|答案(1)|浏览(120)

我在看书。env文件并将其转换为json文件。
输入:

os=amazon-linux
region=ap-south-1

期望输出:

{
"os": "amazon-linux",
"region": "ap-south-1"
}

我试着使用jq,但有两个问题-
1.空行句柄-jq: error (at .env:1): null (null) only strings can be parsed
1.处理注解行-#this is comment =〉"#this is comment": null
注意:.env文件不是嵌套值文件

pkwftd7m

pkwftd7m1#

您可以使用capture通过正则表达式抓取部分(不匹配的行将被完全忽略),并使用from_entries构造对象:

jq -Rn '[inputs | capture("(?<key>[^=]+)=(?<value>.*)")] | from_entries'
{
  "os": "amazon-linux",
  "region": "ap-south-1"
}

相关问题