我正在尝试查找可以在文件中找到所有电子邮件并将其转换为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
答案 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
,看看会发生什么。如果您的输入与示例中的输入不严格,您可能不得不对正则表达式进行一些调整。