首页 > Web开发 > 详细

Use sed and awk to prettify json

时间:2014-10-01 21:43:01      阅读:359      评论:0      收藏:0      [点我收藏+]
$ cat prettify.sed 
s/,/,\r\n/g
s/\[/\r\n\[\r\n/g
s/\]/\r\n\]\r\n/g
s/{/\r\n{\r\n/g
s/}/\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

原文:http://www.cnblogs.com/long123king/p/4003593.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!