2015-08-26 63 views
0

数字/字母数字文本我有一个包含这些块由逗号分隔的12K单个文本行:输出的α/使用grep

{"hash":"AbCD1QS","title":"","description":"","width":1920,"height":1080,"size":12345689,"ext":".jpg","animated":false,"prefer_video":false,"looping":false,"datetime":"2009-01-04 02:32:61"} 

下一个散列也可以是全部小写的“字母数字”文本,全部大写,不包含数字或包含所有数字。

如何仅使用Grep输出散列旁边的文本,并将每个结果输出到新行?

+0

请将您想要的输出添加到您的问题。 – Cyrus

回答

0
grep -Po "(?<=hash\":\")[^\"]*" 

-P使用Perl的正则表达式

(?<=hash\":\")后相匹配的字符串哈希 “:”

[^\"]*任何字符匹配离了引号

0

使用JSON解析器对JSON数据:

$ json='{"hash":"AbCD1QS","title":"","description":"","width":1920,"height":1080,"size":12345689,"ext":".jpg","animated":false,"prefer_video":false,"looping":false,"datetime":"2009-01-04 02:32:61"}' 
$ echo "$json" | jq -r '.["hash"]' 
AbCD1QS