首页 > 代码库 > Use sed and awk to prettify json

Use sed and awk to prettify json

$ cat prettify.sed s/,/,\r\n/gs/\[/\r\n\[\r\n/gs/\]/\r\n\]\r\n/gs/{/\r\n{\r\n/gs/}/\r\n}\r\n/g

 

$ cat prettify.awk BEGIN{  depth = 0;}/\[/ {          sp = 0;        while(sp++ < depth)            printf("    ");         print $0;                depth += 1;     }/{/  {         sp = 0;        while(sp++ < depth)            printf("    ");         print $0;                depth += 1;     }/\]/ {         if (depth > 1)             depth -= 1;                    sp = 0;        while(sp++ < depth)            printf("    ");         print $0;     }/}/  {         if (depth > 1)             depth -= 1;                sp = 0;        while(sp++ < depth)            printf("    ");         print $0;     }/".*":".*"/ {sp = 0;while(sp++ < depth)printf("    "); print $0;}

 

$ cat digitalstrategy.json | sed -f prettify.sed | awk -f prettify.awk | head -50{    "agency":"NSF",    "generated":"2014-08-07 06:38:36",    [        {            "id":"2.1",            "due":"90 Days",            "due_date":"2012\/08\/21",            [                {                    "type":"select",                    "name":"2-1-status",                    "label":"Overall Status",                    [                        {                            "label":"Not Started",                            "value":"not-started"                        }                        {                            "label":"In Progress",                            "value":"in-progress"                        }                        {                            "label":"Completed",                            "value":"completed"                        }                    ]                    "value":"completed"                }            ]        }        {            "id":"2.1.1",            "parent":"2.1",            "text":"Paragraph on customer engagement approach",            "due":"90 days",            "due_date":"2012\/08\/21",            [                {                    "type":"textarea",                    "name":"2-1-1-customer-engagement-approach",                    "label":"Paragraph on customer engagement approach",                    [                    ]                }            ]        }        {            "id":"2.1.2",            "parent":"2.1",

 

Use sed and awk to prettify json