如何在"total":
和之间获取文本, "issues"
,简而言之我需要3004
从下面的文件中获取数字。
Cat test1
{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":
3004
从上述文件中获取的确切命令是什么?
既然你标记了unix
我猜你没有grep
with PCRE
。您可以使用以下perl
单行代码,但正如其他人建议的那样,最好使用json
解析器。
perl:
$ echo '{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":' |
perl -nle 'print $1 if /(?<="total":)([0-9]+)(?=,"issues")/'
3004
如果你没有很多"total":
,那么以下就足够了:
$ echo '{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":' |
perl -nle 'print $1 if /(?<="total":)([0-9]+)/'
3004
grep with PCRE:
$ echo '{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":' |
grep -oP '(?<="total":)[0-9]+'
3004
如果你真的想用sed
,比
sed -e 's/.*\"total\":\([0-9]*\).*/\1/'
应该做的伎俩。如果要解析 JSON,请使用 JSON 解析器。