Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JSON文件中提取值(使用grep/cut)?[正则表达式问题]_Grep_Cut - Fatal编程技术网

如何从JSON文件中提取值(使用grep/cut)?[正则表达式问题]

如何从JSON文件中提取值(使用grep/cut)?[正则表达式问题],grep,cut,Grep,Cut,我在JSON文本文件中包含以下内容: {“cdate”:“2020-09-01T23:11:46-02:00”,“电子邮件”:“示例”_email@gmail.com“,”电话“+”6699881234“,”名字“:”约翰“,”姓氏“:”史密斯“,”组织“:”0“,”组织“,”分段id“,”硬反弹“:”0“,”软反弹“:”0“,”反弹日期“:”0000-00-00“,”ip“:”1234567“,”ua“,”散列“:”jfepfjepjfewfe87“,”社会数据“:”最后检查“:”0000-0

我在JSON文本文件中包含以下内容:

{“cdate”:“2020-09-01T23:11:46-02:00”,“电子邮件”:“示例”_email@gmail.com“,”电话“+”6699881234“,”名字“:”约翰“,”姓氏“:”史密斯“,”组织“:”0“,”组织“,”分段id“,”硬反弹“:”0“,”软反弹“:”0“,”反弹日期“:”0000-00-00“,”ip“:”1234567“,”ua“,”散列“:”jfepfjepjfewfe87“,”社会数据“:”最后检查“:”0000-00-00:00”,“本地邮件”:“本地邮件”:“域邮件”:“sentcnt”:“27”,“评级”:“2019-09-22”,“gravatar”:“1”,“删除”:“0”,“匿名”:“0”,“adate”:“2020-08-21T04:11:09-05:00”,“udate”:“2020-02-01T21:01:21-06:00”,

这篇课文都在一行上

我想提取三个值:“email”、“firstName”和“lastName”。我使用了
cut-d:“-f6,8,9

这规定:
“示例_email@gmail.com“,”电话“:”约翰“,”姓氏“:”史密斯“,”奥吉德“
。然后我就可以把它清理干净了

问题是,我在文件中有数百个类似的条目,它们的间距不尽相同,所以我不能说下一次使用cut应该是+50(或其他)

我看过grep,但我不知道如何实现我的目标。理想情况下,我想提取:

范例_email@gmail.com 约翰 史密斯

我不在乎它是在一行还是在三行上


谢谢!

最好的方法可能是使用一些json解析器来利用该格式。但为了好玩,这可能会奏效:

grep -o '"\(email\|firstName\|lastName\)":"[^"]*"' input_file
正确的工具