正在try 读取.env文件并将其转换为json文件.

输入:

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

所需输出:

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

我正在try 使用JQ,但遇到了两个问题-

  1. 空行的句柄-jq: error (at .env:1): null (null) only strings can be parsed
  2. 处理注释行-#this is comment=>"#this is comment": null

注意:.env文件不是嵌套值文件

推荐答案

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

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

Json相关问答推荐

如何在使用GO时检测JSON中不需要的字段?

kotlinx-serialization:如何将具有不同类型对象的JsonArray转换为同一个Class

由于无效的UTF-8开始字节0xa0,JSON被拒绝,但编码似乎有效

Jolt-在数组列表中插入新的字段

在深度嵌套数组中使用布尔属性的jq-select

如何在VB6中将字符串转换或解码为可读格式?

在 SQL 存储过程中使用参数 Select 值

基于JQ中另一个对象的值 Select 对象

Jolt 规范将父对象中的所有键应用于数组中的所有对象

从 Inno Setup 中的 JSON 文件的每个对象中读取特定字符串

将 JSON 字符串解析为 Kotlin Android 中的对象列表(MOSHI?)

使用 jq 将消息转换为数组

JOLT 获取带有动态键的数组

如何配置spring mvc 3在json响应中不返回null对象?

错误字符串的长度超过了maxJsonLength属性设置的值

使用绝对或相对路径在 curl 请求中发送 json 文件

Peewee 模型转 JSON

Jackson JSON序列化,通过级别定义避免递归

运算符不存在:json = json

如何遍历 JSON 中的条目?