如何从JSON文件中提取值(使用grep/cut)?[正则表达式问题]
我在JSON文本文件中包含以下内容:如何从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
{“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
正确的工具