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优缺点分析说明
Jun 09 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
jQuery中wrapInner()方法用法实例
Jan 16 Javascript
javascript自动切换焦点控制效果完整实例
Feb 02 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
浅谈js中对象的使用
Aug 11 Javascript
Angular6封装http请求的步骤详解
Aug 13 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
详解javascript对数组和json数组的操作
Apr 15 Javascript
vue+element实现表格新增、编辑、删除功能
May 28 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
vue router 动态路由清除方式
May 25 Vue.js
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
php mysql索引问题
2008/06/07 PHP
php遍历目录方法小结
2015/03/10 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
js实现文字滚动效果
2016/03/03 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
Python新手学习raise用法
2020/06/03 Python
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
国庆节文艺活动方案
2014/02/03 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
节能环保演讲稿
2014/08/28 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
免职通知
2015/04/23 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers