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 07 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
Javascript中Array.prototype.map()详解
Oct 22 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
Sep 15 Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
JS快速实现简单计算器
Apr 08 Javascript
用Angular实现一个扫雷的游戏示例
May 15 Javascript
Vue 修改网站图标的方法
Dec 31 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 获取本机外网/公网IP的代码
2010/05/09 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
详细探究Python中的字典容器
2015/04/14 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
python使用RNN实现文本分类
2018/05/24 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
初中三年学生的学习自我评价
2013/11/13 职场文书
自我评价范文
2013/12/22 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
公司任命书模板
2014/06/06 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
个人年终总结范文
2015/03/09 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python