Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Shell脚本将.txt转换为json_Json_Shell_Jq - Fatal编程技术网

使用Shell脚本将.txt转换为json

使用Shell脚本将.txt转换为json,json,shell,jq,Json,Shell,Jq,我有一个文本文件data.txt: Framework1,Version1 Framework2,Version2 Framework3,Version3 我需要将其转换为data.json,如下所示: [ {"FrameworkName":"Framework1", "VersionName":"Version1"}, {"FrameworkName":"Framework3", "VersionName":"Version2"}, {"FrameworkName":"Framework3"

我有一个文本文件
data.txt

Framework1,Version1
Framework2,Version2
Framework3,Version3
我需要将其转换为
data.json
,如下所示:

[
{"FrameworkName":"Framework1", "VersionName":"Version1"},
{"FrameworkName":"Framework3", "VersionName":"Version2"},
{"FrameworkName":"Framework3", "VersionName":"Version3"}
]

我尝试过使用
awk
,但对我没有多大帮助。任何帮助都将不胜感激

jq
解决方案:

jq -Rs '[ split("\n")[] | select(length > 0) 
          | split(",") | {FrameworkName: .[0], VersionName: .[1]} ]' data.txt
输出:

[
  {
    "FrameworkName": "Framework1",
    "VersionName": "Version1"
  },
  {
    "FrameworkName": "Framework2",
    "VersionName": "Version2"
  },
  {
    "FrameworkName": "Framework3",
    "VersionName": "Version3"
  }
]

txt文件中的数据类型是什么?我指的是输入数据类型。