Use sed and awk to prettify json
2024-08-24 11:39:35
$ 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",
$ 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;}
最新文章
- FunDA(0)- Functional Data Access accessible to all
- python第十三天
- mac上使用生成RSA公钥和密钥
- php sso单点登录原理阐述
- [转]天龙八部的BillingServer
- 利用<;JavascriptSerializer类>; 进行Json对象的序列化和反序列化
- 收集一下Windows7系统啊
- 清理收缩VMware虚拟机MacOS系统的vmdk文件大小
- curl学习之curl_setopt参数设置大总结
- Android Context讲解(转)
- ps 替换背景以及调整尺寸
- CFX构建webservice实例,与Spring整合.
- Qt控件使用汇总
- Spring常用注解简单汇总
- 邮件发送(C#)
- 【转】TCP、UDP数据包大小的限制
- Hibernate缓存何时使用和如何使用
- 【FZU2280】Magic
- Centos6.5(Linux)安装Nginx
- Django调试models输出的SQL语句