2

我正在尝试找到可以在文件中找到所有电子邮件并将它们转换为 HTML 链接的命令。有任何想法吗?

输入将是:

<tr>
    <td>Some Position</td>
    <td>Some Name</td>
    <td>some@email.com</td>
    <td>Some phone number</td>
</tr>

我想要输出:

<tr>
    <td>Some Position</td>
    <td>Some Name</td>
    <td><a href="mailto:some@email.com">some@email.com</a></td>
    <td>Some phone number</td>
</tr>

我试过了:

sed -i -e "s|\w+@\w+\.\w+(\.\w+)?|<a href=\"mailto:\0\">\0</a>|g" emails.txt
4

2 回答 2

1

尝试这个:

LOCAL="[\._-+a-zA-Z0-9]"

HOST="[\._-+a-zA-Z0-9]"

EXT=".*"

EMAIL="$LOCAL*@$HOST*\.$EXT"

sed "s|\($EMAIL\)|<a href=\"mailto:\1\">\1</a>|g" emails.txt

您可以为前三个变量添加更多验证。

于 2013-11-13T15:19:39.600 回答
0

一点 perl 可能会:

perl -pe 's/\W*(\w+@\w+)\W*/<A HREF="mailto:$1">$1<\/A>/' 

使用例如 cat 或仅使用此 Feed 文件,< your.file.html看看会发生什么。如果您的输入不像您的示例那样严格,您可能需要对相关的正则表达式进行一些处理。

于 2013-11-13T10:48:47.810 回答