#!/bin/ksh set -e [[ -z $1 ]] && echo file? && exit 1 file=$1 (( lines = `grep -vE '^#|^$' $file | wc -l` )) (( line_n = 0 )) echo '{' grep -vE '^#|^$' $file | while read line; do key=`echo $line | cut -f1 -d=` value=`echo $line | cut -f2- -d=` # define a null json entry [[ -z $value ]] && value=null (( line_n++ )) # last json entry if (( line_n == lines )); then cat <