我有像这样的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,但我不知道,如何使用更改的网址。
就像是
查找"/site/index.php/
并首次出现"
,然后"
放置.html
(或之间的变量)。
谢谢。
答案 0 :(得分:1)
sed 's/<a \+href="\([^\"]*\)"/<a href=".\1.html"/g' my_file.html
这会查找看起来像<a href="xxx"
的任何内容,并将xxx
替换为.xxx.html
。它允许a
和href
之间的多个空格。要查找xxx
,它会查找不包含"
的{{1}}之间的任何字符串。这假定您的原始文件包含前面的"
,示例显示,并且/
全部位于文件的同一行(不在<a href="xxx"
和a
之间例)。 href
选项会确保它在一行中处理多个g
。
答案 1 :(得分:0)
使用awk
awk '{gsub(/href="/,"&.");gsub(/" title/,".html&")}1' file