30 lines
		
	
	
		
			499 B
		
	
	
	
		
			Awk
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			499 B
		
	
	
	
		
			Awk
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env -S awk -f
 | 
						|
 | 
						|
BEGIN   {
 | 
						|
    FS=": "
 | 
						|
 | 
						|
    prev_empty=1
 | 
						|
    t="  "
 | 
						|
 | 
						|
    print "[ {"
 | 
						|
}
 | 
						|
 | 
						|
!NF { # empty line, update separator so next non empty line closes the dict
 | 
						|
    prev_empty=1
 | 
						|
    t="},\n{ "
 | 
						|
    next # skip line (we won't match anything else)
 | 
						|
}
 | 
						|
 | 
						|
{
 | 
						|
    printf t "\"%s\" : \"%s\"\n", $1, $2
 | 
						|
 | 
						|
    if (prev_empty) {
 | 
						|
        # we were the first after a group of empty lines, following ones have to
 | 
						|
        # have a comma
 | 
						|
        prev_empty=0
 | 
						|
        t=", "
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
END     { print "} ]" }
 |