如何在"total":
和, "issues"
之间提取文字,简而言之,我需要从下面的文件中提取3004
个数字。
Cat test1
{"expand":"schema,names","startAt":0,"maxResults":2,"total":3004,"issues":
从上述文件中获取3004
的确切命令是什么?
答案 0 :(得分:0)
如果你真的想使用sed
,而不是
sed -e 's/.*\"total\":\([0-9]*\).*/\1/'
应该做的伎俩。 如果要解析JSON,请使用JSON解析器。
答案 1 :(得分:0)
由于您标记为unix
,我猜您没有grep
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