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动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
javascript类型转换示例
Apr 29 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
利用浮层使select不可选的实现方法
Dec 03 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
vue构建单页面应用实战
Apr 10 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
老生常谈js数据类型
Aug 03 Javascript
浅谈Angular4实现热加载开发旅程
Sep 08 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
Oct 31 Javascript
微信小程序实现横向增长表格的方法
Jul 24 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
一个查看session内容的函数
2006/10/09 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python的socket编程入门
2018/01/29 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
python Tensor和Array对比分析
2020/01/08 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
用python写爬虫简单吗
2020/07/28 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
实习教师自我鉴定
2013/12/12 职场文书
卖车协议书
2014/04/21 职场文书
运动会广播稿50字
2015/08/19 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技