Вот два подхода (я рекомендую второй, но это зависит от того, что вы будете делать с результатами, например, хотите ли вы запустить плагин gulp для Trues и / или False).
Подход 1:
const gulp = require("gulp");
const gulpif = require("gulp-if");
const path = require("path");
const noop = require("gulp-noop");
const regex = /Public ReadOnly isHealthy As Boolean = (True|False)/;
// console.log("Public ReadOnly isHealthy As Boolean = True".match(regex)); // s/b true
// console.log("Public ReadOnly isHealthy As Boolean = False".match(regex)); // s/b false
const condition = function (file) {
// here file is a vinyl file
const match = file.contents.toString().match(regex);
console.log(`${path.basename(file.path)}: ` + match[1]);
return match[1] === "True";
}
const ifRegEx = function() {
return gulp.src('./src/*.txt')
.pipe(gulpif(condition, noop(), noop()));
// .pipe(gulpif(condition, gulp.dest('./truePile'), gulp.dest('./falsePile')));
};
exports.ifRegEx = ifRegEx;
С gulpif
вы можете обрабатывать True
иначе, чем False
- в закомментированном коде они копируются в разные папки.
Подход 2:
const glob = require("glob");
const files = glob.sync('./src/*.txt'); // returns an array
const fs = require("fs");
const findRegEx = function (done) {
const regex = /Public ReadOnly isHealthy As Boolean = (True|False)/;
files.forEach( file => {
let contents = fs.readFileSync(file, "UTF8");
const match = contents.match(regex);
console.log(`${file}: ` + match[1]);
// if match[1] === "True" doThis;
// else doThat;
});
done();
}
exports.findRegEx = findRegEx;
Это выведет имя файла и True / False, например:
./src/testFalse.txt: False
./src/testTrue.txt: True
./src/testTrue2.txt: True