我有一个网站,创建于1994年,没有得到很好的维护,包含数千个单独的文件。文件中有超过3800个绝对URL引用,为了将站点移动到新主机,它们都必须被删除或删除。
大约一半的参考文献是对现已解散的icra网站的元引用,因此可以批量丢弃。我可以用一个简单的管道来识别它们,例如:
cat foo.html|grep meta|grep icra
但现在我必须摆脱这条线。我尝试在sed中将此管道作为参数,然后使用sed删除该行,但它很笨拙并且无法正常工作。
一旦完成该部分,最好有一种方法来重新激活所有链接,例如,如果我在层次结构中有两个级别的文件,并且引用了 http://olddomain.org/dir1/dir2/dir3/foo.html,将更改为../../dir1/dir2/dir3/foo.html
如果我的参考文件上升然后返回到完全相同的目录,那就不会打扰我了 - 我可以根据需要慢慢地手动修复它们。
由于
答案 0 :(得分:0)
如果网站仍然存在,您可以使用wget --convert-links
复制网站,最后将内部链接转换为亲属。
答案 1 :(得分:0)
如果HTML文件结构合理,你需要删除的元素只在一行上,而该行上没有其他元素,那么这很容易。
perl -i -ne 'print unless /meta/ && /irca/' foo.html
这会重写foo.html
,删除包含字符串"meta"
和"irca"
的所有行。