Node.js实现在目录中查找某个字符串及所在文件


Posted in Javascript onSeptember 03, 2014

需求如下:

整个目录下大概有40几M,文件无数,由于时间久了, 记不清那个字符串具体在哪个文件,于是。强大,亮瞎双眼的Node.js闪亮登场。

windows下安装Node.js和安装普通软件毫无差别,装完后打开Node.js的快捷方式,或者直接cmd,你懂的。

创建findString.js

var path = require("path");

var fs = require("fs");

 

var filePath = process.argv[2];

var lookingForString = process.argv[3];

recursiveReadFile(filePath);

 

function recursiveReadFile(fileName){

 if(!fs.existsSync(fileName)) return;

 if(isFile(fileName)){

  check(fileName);

 }

 if(isDirectory(fileName)){

  var files = fs.readdirSync(fileName);

  files.forEach(function(val,key){

  var temp = path.join(fileName,val);

            if(isDirectory(temp)) recursiveReadFile(temp);

            if (isFile(temp)) check(temp);

  })

 }

}

function check(fileName){

 var data = readFile(fileName);

 var exc = new RegExp(lookingForString);

    if(exc.test(data))

 console.log(fileName);

 

}

function isDirectory(fileName){

    if(fs.existsSync(fileName)) return fs.statSync(fileName).isDirectory();

}

function isFile(fileName){

  if(fs.existsSync(fileName)) return fs.statSync(fileName).isFile();

}

function readFile(fileName){

 if(fs.existsSync(fileName)) return fs.readFileSync(fileName,"utf-8");

}

两个参数:第一个参数为“文件夹名称” 第二个参数为“你要查找的字符串”

如图:

Node.js实现在目录中查找某个字符串及所在文件

打印出文件路径,完事,收工。速度实在是彪悍,亮瞎双眼。。。如果采用java全文搜索,你惨了...

Javascript 相关文章推荐
JQuery的一些小应用收集
Mar 27 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
自动设置iframe大小的jQuery代码
Sep 11 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
JS中位置与大小的获取方法
Nov 22 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
Jun 19 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
利用原生JS实现欢乐水果机小游戏
Apr 23 Javascript
iframe如何动态创建及释放其所占内存
Sep 03 #Javascript
Javascript正则控制文本框只能输入整数或浮点数
Sep 02 #Javascript
jquery制作select列表双向选择示例代码
Sep 02 #Javascript
一个获取第n个元素节点的js函数
Sep 02 #Javascript
indexOf 和 lastIndexOf 使用示例介绍
Sep 02 #Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 #Javascript
JavaScript判断文件上传类型的方法
Sep 02 #Javascript
You might like
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
总结对比php中的多种序列化
2016/08/28 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
json的使用小结
2016/06/08 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
JavaScript实现筛选数组
2021/03/02 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
python编程线性回归代码示例
2017/12/07 Python
Python闭包函数定义与用法分析
2018/07/20 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
毕业生文员求职信
2013/11/03 职场文书
安全生产责任书范本
2014/04/15 职场文书
校园环保建议书
2014/05/14 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang