我有两个文件夹,输入和输出文件夹,其中包含许多以下格式的文本文件。我如何使用nodejs从输入文件夹中读取所有文件,运行正则表达式并将所有更新的文件写入另一个输出文件夹?
Input: $.Carpool[0].NoofSeats], [$.Carpool[1].NoofSeats]
So after replace with regex the updated text file should be:
Regex: str = str.replace(/\.[A-Z]/g, (m0) => m0.toLowerCase());
Output: [$.carpool[0].noOfSeats], [$.carpool[1].noOfSeats]
到目前为止,我必须从目录中读取文件:
const fs= require("fs");
let directory = "Input" // Desktop/Input
let files = fs.readdirSync(directory)
console.log(files);
答案 0 :(得分:0)
您要遍历文件,假设其中的内容是UTF-8格式的文本文件,则为例。
您使用fs.readFile
在列出目录后读取特定文件。
然后使用fs.writeFile
编写一个包含内容的新文件。
我将/directory/${f}
用于新文件目录路径,并将${f}
用于已打开的文件名。
const fs = require("fs");
// Directory
let directory = "/";
// Files
let files = fs.readdirSync(directory);
// Loop through the files
files.forEach(f => {
// Read the contents in UTF-8 format
fs.readFile(f, 'utf8', function(err, contents) {
if (err) { console.log(err); }
// Output Contents
console.log(contents);
// Perform regex here
contents = contents.replace(/\.[A-Z]/g, (m0) => m0.toLowerCase());
// Write new file to path /new, with contents
fs.writeFile(`/directory/${f}`, contents, function(err) {
if (err) {
// Error writing
return console.log(err);
}
console.log("The file was saved!");
});
});
});