devops_engineer
devops_engineer

Reputation: 599

Convert .txt to json using Shell scripting

I have a text file data.txt:

Framework1,Version1
Framework2,Version2
Framework3,Version3

I need to convert it to data.json which would look like:

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

I have tried using awk but it hasn't helped me much. Any help would be appreciated.

Upvotes: 5

Views: 11143

Answers (1)

RomanPerekhrest
RomanPerekhrest

Reputation: 92854

jq solution:

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

The output:

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

https://stedolan.github.io/jq/manual/v1.5/

Upvotes: 6

Related Questions