can someone help with fixing this code, i am not able to create the csv file at runtime
#!/bin/bash
# Read JSON content from a parameter or file
JSON_CONTENTS=$(cat <<EOF
[
{"projectName": "Project1", "jobName": "Job1", "version": "1.0"},
{"projectName": "Project2", "jobName": "Job2", "version": "2.0"}
]
EOF
)
# Initialize CSV content
csvContent="projectName,jobName,versionn"
# Function to extract value from JSON
extract_value() {
echo "$1" | grep -oP '(?<="'$2'":")[^"]*'
}
# Process each JSON object
IFS=$'n' json_objects=($(echo "$JSON_CONTENTS" | tr -d '[],'))
for obj in "${json_objects[@]}"; do
projectName=$(extract_value "$obj" "projectName")
jobName=$(extract_value "$obj" "jobName")
version=$(extract_value "$obj" "version")
csvLine="${projectName},${jobName},${version}n"
csvContent+="$csvLine"
done
# Write CSV content to a file
echo -e "$csvContent" > module_list.csv
This script relies on basic shell utilities like grep and tr, making it more portable but slightly less robust than using jq.