Shell Json
利用sed解析
-
解析json(不能有无用的空格)
#!/bin/sh s={"rv":0,flag:1,"url":"http://www.jinhill.com","msg":"test"} parse_json(){ echo $1 | sed 's/.*'$2':\([^,}]*\).*/\1/' } echo "Json strings: $s" rv=$(parse_json $s "rv") url=$(parse_json $s "url") msg=$(parse_json $s "msg") echo rv=$rv echo url=$url echo msg=$msg
-
解析URL Query
#!/bin/sh s="http://www.zonetec.cn/WlanAuth/portal.do?appid=aaaa&apidx=0" parse(){ echo $1 | sed 's/.*'$2'=\([[:alnum:]]*\).*/\1/' } value=$(parse $s "appid") echo $value
shell脚本处理JSON数据工具jq
Json.org推荐了两个:Jshon和JSON.sh
-
http://kernelpanic.im/blog/2012/03/08/shell-manipulate-json/
- JSON.sh:https://github.com/dominictarr/JSON.sh
- JSON.awk:https://github.com/step-/JSON.awk
- jshon:http://kmkeen.com/jshon/
其中JSON.sh是完全用shell实现的json parser,似乎不能做到添加/修改/删除原有json的结构。
而jshon是用c实现的,依赖于jansson,使用MIT协议,目的就是为了替代由 grep/sed/awk写的fragile adhoc parsers,相比之下python/perl/ruby显得过于笨重了。