从文本文档中提取所有电子邮件

从文本文档中提取所有电子邮件

我有一个包含文本和 HTML 标签的文档,其中有很多标签,例如如何使用 Linux 命令从此文档中提取所有电子邮件。 我尝试使用,但没有成功。 以下是此类文档的示例:<label>[email protected]</label>
grep -e "[a-zA-Z0-9._]\+@[a-zA-Z]\+.[a-zA-Z]\+"

   <tbody><tr class="d_gh d2l-table-row-first" header=""><th class="d_gs d2l-table-cell-first" rowspan="1" colspan="1"><input 
class="d2l-checkbox float_l" type="checkbox" title="Select all rows" onclick="UI.GC('z_k').g_sa(this.checked)" 
name="z_k_cb_sa"></th><th scope="col" class="d_hch d_gw d_gl"><d2l-table-col-sort-button data-d2l-table-sort-field="LastName" 
data-d2l-table-next-sort-dir="asc" title="Sort by Last Name" nosort="">Last 
Name</d2l-table-col-sort-button>,&nbsp;<d2l-table-col-sort-button data-d2l-table-sort-field="FirstName" 
data-d2l-table-next-sort-dir="asc" title="Sort by First Name" nosort="">First Name</d2l-table-col-sort-button></th><th 
scope="col" class="d_hch d_gl">Email Address</th><th scope="col" class="d_hch d_gl"><d2l-table-col-sort-button 
data-d2l-table-sort-field="RoleName" data-d2l-table-next-sort-dir="asc" title="Sort by Role" 
desc="">Role</d2l-table-col-sort-button></th><th scope="col" class="d_hch d_gl 
d2l-table-cell-last"><label>Type</label></th></tr><tr><td class="d_gd_sel d2l-table-cell-first" 
style="white-space:nowrap;"><input class="d2l-checkbox" type="checkbox" title="Select Nida" name="SystemContactsGrid_cb" 
value="2" onclick="UI.GC('z_k').g_sr('2')"></td><th scope="row" class="d_ich">Ahmed, Nida</th><td 
class="d_gn"><label>[email protected]</label></td><td><label>Student</label></td><td class="d_gn d2l-table-cell-last"><label>Internal
 Email</label></td></tr><tr><td class="d_gd_sel d2l-table-cell-first" style="white-space:nowrap;"><input class="d2l-checkbox" 
 type="checkbox" title="Select Milen" name="SystemContactsGrid_cb" value="3" onclick="UI.GC('z_k').g_sr('3')"></td><th 
 scope="row" class="d_ich">Andic, Milena</th><td 
 class="d_gn"><label>[email protected]</label></td><td><label>Student</label></td><td class="d_gn 
 d2l-table-cell-last"><label>Internal Email</label></td></tr><tr><td class="d_gd_sel d2l-table-cell-first" 
 style="white-space:nowrap;"><input class="d2l-checkbox" type="checkbox" title="Select Anthony" name="SystemContactsGrid_cb" 
 value="4" onclick="UI.GC('z_k').g_sr('4')"></td><th scope="row" class="d_ich">Macdonald, Anthony</th><td 
 class="d_gn"><label>[email protected]</label></td><td><label>Student</label></td><td class="d_gn 
 d2l-table-cell-last"><label>Internal Email</label></td></tr><tr><td class="d_gd_sel d2l-table-cell-first" 
 style="white-space:nowrap;"><input class="d2l-checkbox" type="checkbox" title="Select" name="SystemContactsGrid_cb

Linux shell 脚本命令的输出应为
[电子邮件保护]
[电子邮件保护]
[电子邮件保护]

哪些电子邮件地址

答案1

一般来说,仅仅处理已解析的 html 文件并不是一个好主意。

尝试使用类似 xmllint 的东西

xmllint --xpath "//label/text()" file

请注意,输入文件应该是有效的 html,示例中提供的文件不是。

例子:

<body>
    <label>[email protected]</label>
    <label>[email protected]</label>
</body>
xmllint --xpath "//label/text()" file

输出:

[email protected]
[email protected]

还请注意,它将输出标签标记之间的任何值。(如果您的示例格式正确,它还将输出“学生”)但这应该可以让您开始。

相关内容