使用UNIX命令查找电子邮件并将其转换为HTML链接

时间:2013-11-13 10:40:28

标签: html unix sed

我正在尝试查找可以在文件中找到所有电子邮件并将其转换为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

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:0)

有点perl可能会这样做:

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

此处的Feed文件,例如猫或只是< your.file.html,看看会发生什么。如果您的输入与示例中的输入不严格,您可能不得不对正则表达式进行一些调整。