EfonMark

一番码客 : 挖掘你关心的亮点。
http://www.efonmark.com

本文目录:

[TOC]

image-20200207233045216

前言

一番之前不是有一个网站吗,efonfihgint.imwork.net。但这是个二级域名,很多时候用起来不方便,自主性还是稍差了一点。

所以一番后来买了一个一级域名,www.efonmark.com,那个二级域名也不打算维护了。

但一番博客文章中所有的注释都是用的这个二级域名,也有一百多篇文章了。要想一个一个改起来显然是不划算的。作为程序员的我们当然要用程序员的方式处理这种事情。

当然这个功能python也可以做,以前一番也都是用python去处理这样的事情的。

但最近一番不是在学javascript吗,而且JavaScript对部署前端也有优势,所以这个小需求一番准备用JavaScript来做,顺便也练习下,以后尽量多用js,少用python。

js据我了解现在用的非常广泛,但可能是因为大数据和人工智能的原因,现在程序小白喜欢用python。

环境准备

  • win10 + nodejs

思路方法

  • fs模块处理文件。
  • path模块处理文件查找和路径处理。
  • 变量参数清晰独立,方便动态配置。
  • 功能函数封装,方便扩展。

代码展示

1
var gFilePath = './content';
2
var gExtension = '.md';
3
var gSrcStr = 'www.efonmark.com';
4
var gReplaceStr = 'www.efonmark.com';
5
6
dirContentReplace(gFilePath, gExtension, gSrcStr, gReplaceStr);
7
8
/**
9
 * 方法说明 替换一个文件夹下所有文件中的特定字符串,不包含子文件夹
10
 * @name dirContentReplace
11
 * @param {str} filePath 文件所在路径
12
 * @param {str} extension 要修改文件的后缀名
13
 * @param {str} srcStr 替换前的字符串
14
 * @param {str} replaceStr 替换后的字符串
15
 * @return {none}
16
 * @note 话说这个js里函数套函数的格式好难看啊,不知道怎么优化,继续深入学习吧
17
 */
18
function dirContentReplace(filePath, extension, srcStr, replaceStr) {
19
    var fs = require('fs');
20
    var path = require("path");
21
    //readdir方法读取文件名
22
    fs.readdir(filePath, 'utf8', function (err,files) {
23
        
24
        if (err) return console.log(err);
25
        
26
        //根据后缀名筛选要操作的文件
27
        var targetFiles = files.filter(function(file) {
28
            return path.extname(file).toLowerCase() === extension;
29
        });
30
        console.log('content dir is:' + filePath);
31
        
32
        targetFiles.forEach(function(item, index) {
33
            
34
            var itemPath = path.join(filePath, item);
35
            console.log(itemPath);
36
37
            //readFile方法读取文件内容
38
            fs.readFile(itemPath, 'utf8', function(err,data){
39
                var result = data.replace(RegExp(srcStr, "g"), replaceStr);
40
41
                //writeFile改写文件内容
42
                fs.writeFile(itemPath, result, 'utf8', function (err) {
43
                     if (err) return console.log(err);
44
                });
45
            });
46
        });
47
    });
48
}
49
50
/**
51
 * 方法说明 替换一个文件夹下所有文件中的特定字符串,包含子文件夹
52
 * @name recDirContentReplace
53
 * @param {str} filePath 文件所在路径
54
 * @param {str} extension 要修改文件的后缀名
55
 * @param {str} srcStr 替换前的字符串
56
 * @param {str} replaceStr 替换后的字符串
57
 * @return {none}
58
 * @note 话说这个js里函数套函数的格式好难看啊,不知道怎么优化,继续深入学习吧
59
 */
60
function recDirContentReplace(filePath, extension, srcStr, replaceStr) {
61
    var path = require("path");
62
    
63
}

安装好nodejs后,直接在cmd中用node命令执行即可。

一番雾语:重复的工作代码化。

免费知识星球:一番码客-积累交流
微信公众号:一番码客
微信:Efon-fighting
网站:http://www.efonmark.com

蜀ICP备19039940号

总访问量为