Node.js实现在目录中查找某个字符串及所在文件

 更新时间:2014年09月03日 08:47:34   投稿:junjie  
这篇文章主要介绍了Node.js实现在目录中查找某个字符串及所在文件,文中代码简洁,而且速度相当的快,需要的朋友可以参考下

需求如下:

整个目录下大概有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");
}

两个参数:第一个参数为“文件夹名称” 第二个参数为“你要查找的字符串”

如图:

打印出文件路径,完事,收工。速度实在是彪悍,亮瞎双眼。。。如果采用java全文搜索,你惨了...

相关文章

  • 一文详解如何降低node包版本

    一文详解如何降低node包版本

    这篇文章主要给大家介绍了关于如何降低node包版本的相关资料,在开发的工程中我们可能需要经常切换node版本来应对不同的开发环境,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 实战node静态文件服务器的示例代码

    实战node静态文件服务器的示例代码

    本篇文章主要介绍了实战node静态文件服务器的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • NodeJS使用JWT跨域身份验证方案详解

    NodeJS使用JWT跨域身份验证方案详解

    JWT是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准,其组成部分为Header、Payload、Signature.Payload部分才是真正的用户信息,它是用户信息经过加密之后生成的字符串,Header和Signature是安全性相关的部分,只是为了保证token的安全性
    2023-02-02
  • Mac OS X 系统下安装和部署Egret引擎开发环境

    Mac OS X 系统下安装和部署Egret引擎开发环境

    之前的文章,我们已经介绍了Windows 系统下安装和部署Egret的开发环境,那么,这篇文档中,我们主要介绍在Mac环境中安装Egret以及部署
    2014-09-09
  • nodejs实现日志读取、日志查找及日志刷新的方法分析

    nodejs实现日志读取、日志查找及日志刷新的方法分析

    这篇文章主要介绍了nodejs实现日志读取、日志查找及日志刷新的方法,涉及nodejs日期时间运算、转换及日志读写等相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 基于nodejs实现微信支付功能

    基于nodejs实现微信支付功能

    这篇文章主要为大家详细介绍了基于nodejs实现微信支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • npm ci命令的基本使用方法

    npm ci命令的基本使用方法

    这篇文章主要给大家介绍了关于npm ci命令的基本使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • nvm安装使用及常用命令

    nvm安装使用及常用命令

    nvm主要是用来管理 nodejs 和 npm 版本的工具,可以用来切换不同版本的 nodejs,这篇文章主要介绍了nvm安装与使用,需要的朋友可以参考下
    2023-01-01
  • koa2实现登录注册功能的示例代码

    koa2实现登录注册功能的示例代码

    这篇文章主要介绍了koa2实现登录注册功能的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 浅谈Node的内存泄露

    浅谈Node的内存泄露

    随着node、react同构等技术越来越广泛地使用, 内存泄漏的事情时有发生,应当引起足够的重视,本文主要介绍了Node的内存泄露,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论