我有一个大文本文件,这是一个非常长的字符串。我的目标是提取“personEmail”和“created”之间的所有电子邮件地址,文件中还有其他电子邮件,但我想要那些特定的电子邮件。我还想计算文本文件中每个电子邮件地址的出现次数,下面是一个摘录:
GFyazovL3VzL1BFT1BMRS9mNWQzMGMyYi1mZDMyLTRhYTYtYjZhYS1iYTdkYWNjZWZiN2M“,”personEmail“:”user1@provider.com“,”created“:”2016-07-13T19:19:14.934Z“,”html“:”blah-forth data-object-type = \ “person \”data-objectid = \“Y2lzY29zcGFyazovL3VzL1user2@provider.comBFT1BMRS81MjhlZDZiMi1jODM4LTQzNDAtOWE2ZC0xMmRmYzI5YWU5
我希望能够使用grep
,sed
或awk
来实现它,如果可能的话可能会使用uniq -c
,我知道如何使用{{1如果有多个字符串,但如果文件只是一个非常长的字符串本身就没有。对此有快速解决方案吗?
答案 0 :(得分:1)
make; make check; make install
**要更好地查看图像,只需右键单击图像并在新窗口中选择视图
此正则表达式将执行以下操作:
(?<="personEmail":")[^"]+(?=")
字段现场演示
https://regex101.com/r/aH1nO9/2
示例文字
GFyazovL3VzL1BFT1BMRS9mNWQzMGMyYi1mZDMyLTRhYTYtYjZhYS1iYTdkYWNjZWZiN2M“,”personEmail“:”user1@provider.com“,”created“:”2016-07-13T19:19:14.934Z“,”html“:”blah-forth data-object-type = \ “person \”data-objectid = \“Y2lzY29zcGFyazovL3VzL1user2@provider.comBFT1BMRS81MjhlZDZiMi1jODM4LTQzNDAtOWE2ZC0xMmRmYzI5YWU5
样本匹配
personEmail
MATCH 1
0. [87-105] `user1@provider.com`