我有多个html文件要合并到一个html文件中,但我需要修改超链接以避免在我将它们组合时使用相同的超链接。
文件名:chapter1.html,chapter1.html等。
我想找到这个标签
<a href="#4">
并用文件名(chapter1.html)替换它,输出必须是这样的(想要排除文件名的扩展名)
<a href="#chapter14">
我怎么能用awk或sed做到这一点?感谢
答案 0 :(得分:1)
sed:
这样的事情> file='chapter1.html'
> f="${file%.*}"
> echo "$f"
chapter1
> sed 's/\(href="#\)\([^#]*\)"/\1'"$f"'\2"/' "$file"
多文件解决方案:
for file in *.html; do
f="${file%.*}"
sed -i.bak 's/\(href="#\)\([^#]*\)"/\1'"$f"'\2"/' "$file"
done
答案 1 :(得分:0)
for File in *.html
do
sed "s|\(<a href=\"#\)\([[:digit:]]\{1,}"\)|\1${File%.*}\2|g" ${File} >> FinalFile.html
done