$ cat prettify.sed
s/,/,
/g
s/[/
[
/g
s/]/
]
/g
s/{/
{
/g
s/}/
}
/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",
$ 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;}