0

我有这样的html代码

<a href="/site/index.php/Something" title="Something">Something cool</a>, <a href="/site/index.php/Nice_Text" title="Nice Text">Nice Text</a>
some text
<a href="/site/index.php/Apple%27s_text" title="Apple's text">Apple's text</a>

我需要在链接中添加点(开始)和.html(结束)来获得这个:

<a href="./site/index.php/Something.html" title="Something">Something cool</a>, <a href="./site/index.php/Nice_Text.html" title="Nice Text">Nice Text</a>
some text
<a href="./site/index.php/Apple%27s_text.html" title="Apple's text">Apple's text</a>

我在玩 sed,但我不知道如何使用更改后的 url。诸如查找"/site/index.php/和第一次出现"以及在该"放置之前.html(或在变量之间)。

谢谢你。

4

2 回答 2

1
sed 's/<a \+href="\([^\"]*\)"/<a href=".\1.html"/g' my_file.html

这会寻找任何看起来像的东西<a href="xxx"并将其替换xxx.xxx.htmla它允许和之间有多个空格href。要查找,它会查找其中不包含xxx的任何字符串。这假设您的原始文件包含前面的示例,并且它们都在文件中的同一行上(例如,在和之间没有中断)。该选项将确保它在一行中处理多个 s。""/<a href="xxx"ahrefghref

于 2013-09-01T10:24:28.697 回答
0

使用 awk

awk '{gsub(/href="/,"&.");gsub(/" title/,".html&")}1' file
于 2013-09-01T16:09:07.200 回答