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

最初の 3 つの変数にさらに検証を追加できます。

于 2013-11-13T15:19:39.600 に答える
0

ちょっとした perl でできること:

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

このためのフィード ファイルを例として cat または単に使用して< your.file.html、何が起こるかを確認します。入力が例のように厳密ではない場合、おそらく正規表現に関連するものを少しいじる必要があるかもしれません。

于 2013-11-13T10:48:47.810 に答える