node命令行开发--文件目录下所有文件中文查找

来源:互联网 发布:cdce.cf ad.js原理 编辑:程序博客网 时间:2024/06/01 22:50

在新功能之前,做了一个小程序,还没有传上去,按照昨天的学习,做了个识别文件夹下所有文本是否包含汉字的程序(想着以后做国际化用,目标就是找到所有的中文所在行

数,然后输出毕竟现在的代码写的乱了)

用了commander,保存下来直接运行就可以了,也可以封装成命令,回头想写个直接输入到文本的,这样以后查标准化就不怕了

运行结果,我在./test 下放了一个叫做1.html的文件,内容是

1那大大叔大叔大叔的aaa啊等qdas

然后运行的结果是


代码如下(老手勿喷~)

#! /usr/bin/env node// 引入需要的模块var program = require("commander");const Table = require('cli-table2') // 表格输出const superagent = require('superagent') // http请求var gs = require('nodegrass');var fs = require("fs");var path = require('path');var re =  /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/; // 判断是否有汉字的正则表达式function readFileContent(filePath) {    var file = fs.readFile(filePath,"utf-8",function (err,data) {            var colomn = data.split("\n");            var result = []            var resultArray = [];             for(var item = 0; item<colomn.length; item++){                 if(re.test(colomn[item]) && colomn[item].trim() != ''){  //如果有汉字,输出文件和所在行数                     result.push(item+1);                     result.push(colomn[item])                     resultArray.push(result);                     result = [];                 }             }            // 输出表格            if(JSON.stringify(result) == "{}" ){ //如果为空就返回,没有中文                return;            }            let table = new Table();            for(var item = 0; item<resultArray.length; item++) {                table.push(                    resultArray[item]                );            }            // fs.writeFileSync('message.txt', resultArray);            console.log(filePath);            console.log(table.toString())        }    );}function fileDisplay(filePath){    //根据文件路径读取文件,返回文件列表    fs.readdir(filePath,function(err,files){        if(err){            console.warn(err)        }else{            //遍历读取到的文件列表            files.forEach(function(filename){                //获取当前文件的绝对路径                var filedir = path.join(filePath,filename);                //根据文件路径获取文件信息,返回一个fs.Stats对象                fs.stat(filedir,function(eror,stats){                    if(eror){                        console.warn('获取文件stats失败');                    }else{                        var isFile = stats.isFile();//是文件                        var isDir = stats.isDirectory();//是文件夹                        if(isFile){                            if(filedir.indexOf(".DS_Store") == -1){                                readFileContent("./"+filedir)                            }                        }                        if(isDir){                            fileDisplay(filedir);//递归,如果是文件夹,就继续遍历该文件夹下面的文件                        }                    }                })            });        }    });}function isPathExist() {    return fs.access(url);} // readFileContent('./test/1.html');//fileDisplay("./test")function commander() {    program        .version('0.0.1')        .option("-s,--search <string>", "search path to find Chinese character!")        .parse(process.argv)    if(program.search){        var pathName = program.search.toString();        fs.access(pathName,function (err) {            if(err){                console.log("目录不存在")            }else{                fileDisplay(pathName)            }        })    }}commander();




阅读全文
0 0