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 DOM操作 基于命令改变页面
May 06 Javascript
js实现回放拖拽轨迹从过程上进行分析
Jun 26 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 Javascript
js实现将json数组显示前台table中
Jan 10 Javascript
vue中动态绑定表单元素的属性方法
Feb 23 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
Apr 19 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
layui表格数据重载
Jul 27 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
JavaScript this指向相关原理及实例解析
Jul 10 Javascript
解决vue动态下拉菜单 有数据未反应的问题
Aug 06 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
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
PHP 开发工具
2006/12/06 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
python super用法及原理详解
2020/01/20 Python
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
结构和类有什么异同
2012/07/16 面试题
我的大学生活演讲稿
2014/04/25 职场文书
质量管理标语
2014/06/12 职场文书
党章培训心得体会
2014/09/04 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
亲戚关系证明
2015/06/24 职场文书