Linux 中的链接文本文件
Linkify text file in Linux
我已经解析了文本文件中包含 url 的所有行并附加了换行符,我想让 links 在新文件中可以点击。
如何使用标准 linux 工具(最好是 awk)仅在 url 周围附加 <a href>
标签?
它需要在 cron 中自动执行。
例如,
源文件chaturls.txt:
12:30 <user> check this: https://link.to/stuff.jpg</br>
13:47 <user4> https://another.link.lol eyyyy</br>
新文件中的所需输出,chatlinkified.html:
12:30 <user> check this: <a href='https://link.to/stuff.jpg'>https://link.to/stuff.jpg</a></br>
13:47 <user4> <a href='https://another.link.lol'>https://another.link.lol</a> eyyyy</br>
我试过 awk '{printf "<a href=\"%s\">%s</a><br>", [=14=],[=14=]}' chaturls.txt > chatlinkified.html
,但这会使整行成为(无效的)可点击 link。
sed -E 's@(https?://[^[:space:]/$.?#].[^[:space:]<]*)@<a href=""></a>@g' chaturls.txt > chatlinkified.html
您可以使用 sed 并使用 </code> 返回匹配组。注意。在这里我使用 @ 而不是 / 来分隔(如在 s/../../g 中),你可以自由使用任何字符,这样可以节省一些转义。</p>
<p>用于查找 URL 的正则表达式会对 https?:// 之后的第一个字符进行一些验证检查,然后继续匹配直到 space 或另一个标记的起始括号。 </p>
<p>如果你想对 url 使用更简单的正则表达式,你可以这样做,在评论之一 <code>https?://[^ ]*)
中给出,其中不包括这个小验证。
您可以在此处找到更广泛的经过验证的 url 正则表达式:https://mathiasbynens.be/demo/url-regex(但您必须将 PHP 正则表达式转换为 sed 扩展正则表达式)
我已经解析了文本文件中包含 url 的所有行并附加了换行符,我想让 links 在新文件中可以点击。
如何使用标准 linux 工具(最好是 awk)仅在 url 周围附加 <a href>
标签?
它需要在 cron 中自动执行。
例如,
源文件chaturls.txt:
12:30 <user> check this: https://link.to/stuff.jpg</br>
13:47 <user4> https://another.link.lol eyyyy</br>
新文件中的所需输出,chatlinkified.html:
12:30 <user> check this: <a href='https://link.to/stuff.jpg'>https://link.to/stuff.jpg</a></br>
13:47 <user4> <a href='https://another.link.lol'>https://another.link.lol</a> eyyyy</br>
我试过 awk '{printf "<a href=\"%s\">%s</a><br>", [=14=],[=14=]}' chaturls.txt > chatlinkified.html
,但这会使整行成为(无效的)可点击 link。
sed -E 's@(https?://[^[:space:]/$.?#].[^[:space:]<]*)@<a href=""></a>@g' chaturls.txt > chatlinkified.html
您可以使用 sed 并使用 </code> 返回匹配组。注意。在这里我使用 @ 而不是 / 来分隔(如在 s/../../g 中),你可以自由使用任何字符,这样可以节省一些转义。</p>
<p>用于查找 URL 的正则表达式会对 https?:// 之后的第一个字符进行一些验证检查,然后继续匹配直到 space 或另一个标记的起始括号。 </p>
<p>如果你想对 url 使用更简单的正则表达式,你可以这样做,在评论之一 <code>https?://[^ ]*)
中给出,其中不包括这个小验证。
您可以在此处找到更广泛的经过验证的 url 正则表达式:https://mathiasbynens.be/demo/url-regex(但您必须将 PHP 正则表达式转换为 sed 扩展正则表达式)