怎样批量替换目录下的所有html文件的指定部分?

<div id="topnav">
    //新修改的代码
</div>
<div id="topnav">
    //以前的代码
</div>

有个主页的顶部导航和其它的很多子页的顶部导航是相同的,现在修改了主页的顶部导航代码,子页的也要改了。可是一个一个地改实在是累死我了。有什么工具可以帮我完成这个工作吗?

阅读 6.3k
6 个回答

既然是前端,那么就可以用node写一个脚本,循环目录下的各个文件,利用正则去替换就好了

所以就是循环读取文件内容,找到内容,提取这一段内容,替换,更新保存,至于用什么语言无所谓

PS:如果之前保持良好的代码组织习惯的话,这个问题就不会出现,比如顶部导航做成一个片段,在需要的地方引入,这样以后修改起来就只要修改一处就好了,所以当你发现你在复用一长段代码时,最好拆成一个单独的文件

文本编辑器就可以 就是那个win下替代原生文本编辑器的软件

一样的代码不应该引用同一个模版吗?

新手上路,请多包涵

sublime

Sublime Text 全文搜索正则替换

简单写了个循环替换的脚本,希望能帮到你。
需要用到nodejs。
安装Node.js


代码如下,filesArr为需要替换的文件数组,XXX是你新修改的代码:

var fs = require('fs');
var filesArr = [
    'header.html',
    'child1/nav.html',
    'child2/nav.html',
    'child3/nav.html'
];
for(var i = 0; i < filesArr.length; i++) {
    var fileContent = fs.readFileSync(filesArr[i], 'utf-8');
    var newCon = fileContent.replace(/(<div id=\"topnav\">[\r\n]*)[\s\S]*([\r\n]*<\/div>)/, "$1XXX\r\n$2");
    fs.writeFile(filesArr[i], newCon);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题