码迷,mamicode.com
首页 > Web开发 > 详细

Use sed and awk to prettify json

时间:2014-10-01 23:40:51      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   sp   div   2014   art   c   on   log   

$ 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

标签:blog   ar   sp   div   2014   art   c   on   log   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!