2026年8月6日 星期四

[bash] 使用 sed 在 html 的 url 加上 href tag

 使用 sed 在 html 的 http url 加上 href tag

```
sed -E 's#(^|[^"])(https://[^< ]+)#\1<a href="\2" target="_blank">\2</a>#g'
```
一般大家看到的是
s/foo/bar/
/ 可換成任何字元 這裏爲了避免紊淆 https:// 選用 #
(^|[^"]) 行首且任何不是 " 字元 可以匹配到 \1

範例
``` 
<div><div>5/18 D5</div><div>Bellerive Hoi An Hotel &amp; Spa - <a href="https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6" target="_blank">https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6</a></div><div>Lotte Mart Supermarket - https://maps.app.goo.gl/XDSYpiaLNPzLGZ7JA</div><div>午餐 Champa restaurant - https://maps.app.goo.gl/BbEGUPtBU3XqXUEF8</div><div>Danang International Airport - https://maps.app.goo.gl/1KxAYXhfguSNyxG68</div>
```


```
➜  tmp cat r1.txt
<div><div>5/18 D5</div><div>Bellerive Hoi An Hotel &amp; Spa - <a href="https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6" target="_blank">https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6</a></div><div>Lotte Mart Supermarket - https://maps.app.goo.gl/XDSYpiaLNPzLGZ7JA</div><div>午餐 Champa restaurant - https://maps.app.goo.gl/BbEGUPtBU3XqXUEF8</div><div>Danang International Airport - https://maps.app.goo.gl/1KxAYXhfguSNyxG68</div>%
➜  tmp cat r1.txt | sed -E 's#(^|[^"])(https://[^< ]+)#\1<a href="\2" target="_blank">\2</a>#g'
<div><div>5/18 D5</div><div>Bellerive Hoi An Hotel &amp; Spa - <a href="https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6" target="_blank"><a href="https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6" target="_blank">https://maps.app.goo.gl/Az4e2qLMxPmUGnPR6</a></a></div><div>Lotte Mart Supermarket - <a href="https://maps.app.goo.gl/XDSYpiaLNPzLGZ7JA" target="_blank">https://maps.app.goo.gl/XDSYpiaLNPzLGZ7JA</a></div><div>午餐 Champa restaurant - <a href="https://maps.app.goo.gl/BbEGUPtBU3XqXUEF8" target="_blank">https://maps.app.goo.gl/BbEGUPtBU3XqXUEF8</a></div><div>Danang International Airport - <a href="https://maps.app.goo.gl/1KxAYXhfguSNyxG68" target="_blank">https://maps.app.goo.gl/1KxAYXhfguSNyxG68</a></div>%


沒有留言:

張貼留言