从inout目录中读取文件,应用正则表达式,一次将所有文件写入输出目录

时间:2019-06-16 03:16:15

标签: node.js node-modules nodejs-stream nodejs-server

我有两个文件夹,输入和输出文件夹,其中包含许多以下格式的文本文件。我如何使用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);

1 个答案:

答案 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!");
        });
    });
});