如何在"total": 和之间获取文本, "issues",简而言之我需要3004从下面的文件中获取数字。
Cat test1
{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":
3004从上述文件中获取的确切命令是什么?
既然你标记了unix我猜你没有grepwith 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 解析器。