您好,欢迎访问一九零五行业门户网

Node.js实现在目录中查找某个字符串及所在文件_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全文搜索,你惨了...
其它类似信息

推荐信息