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



我有两个文件夹,输入和输出文件夹,其中包含许多以下格式的文本文件。如何从输入文件夹中读取所有文件,运行正则表达式并将所有更新的文件写入另一个输出文件夹?我正在使用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);

您希望遍历文件,假设内容是 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!");
        });
    });
});

最新更新