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 相关文章推荐
JavaScript 继承机制的实现(待续)
May 18 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
Jan 23 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
原生js+css调节音量滑块
Jan 15 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
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php导出生成word的方法
2015/12/25 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
python简单程序读取串口信息的方法
2015/03/13 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
python获取url的返回信息方法
2018/12/17 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Python tkinter实现日期选择器
2021/02/22 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
一道Delphi上机题
2012/06/04 面试题
导购员的岗位职责
2014/02/08 职场文书
小区消防演习方案
2014/02/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
病危通知书样本
2015/04/17 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
四年级作文之植物
2019/09/20 职场文书