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
- node命令行开发--文件目录下所有文件中文查找
- 查找某目录下的所有文件
- 查找一个目录下的所有文件
- DELPHI--查找目录下所有文件
- 查找目录下所有文件及子目录
- 查找一个目录下的所有文件
- java代码遍历目录下的所有文件(查找对应目录下的所有文件)
- windows下查找一个目录下所有文件内容
- 查找某个目录下的所有文件(包括子目录)
- DELPHI--查找目录下所有文件方法二
- 递归查找出目录下的所有文件
- Linux查找和替换目录下所有文件中字符串
- 递归 / 迭代两种方法实现查找指定目录下所有文件
- C++查找一个目录下所有特定扩展名的文件
- 查找目录下所有文件,并替换内容-shell
- 查找某个目录下的所有文件(包括子目录)
- 查找指定目录下的所有日志文件*.log perl
- Matlab查找当前目录及子目录下所有文件
- 【头条】西部数据包继红:嵌入式存储因需而动
- 编程知识体系概述
- Python 中的range,以及numpy包中的arange函数
- Timer定时器每天的固定时间执行
- 在SSH框架中解决JSON中ref问题
- node命令行开发--文件目录下所有文件中文查找
- vuejs如何向后端提交数据
- ThreadLocal的简单用法
- 第12章 超越算法能力的极限
- Acunetix Web Vulnarability Scanner V10.5 详细中文手册
- JVM 内存分配与回收策略
- jenkins可选插件为空的解决方式或jenkins不能联网
- 关于linux中内核编程中结构体的赋值操作 (结构体指定初始化)
- 数据结构练习——简单单链表