Чтение файлов из inout dir, применение регулярных выражений, запись всех файлов для вывода dir одновременно. - PullRequest
0 голосов
/ 16 июня 2019

У меня есть две папки, входная и выходная, с множеством текстовых файлов в следующем формате.Как мне прочитать все файлы из входной папки, запустить регулярное выражение и записать все обновленные файлы в другую выходную папку? Я использую 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 голосов
/ 16 июня 2019

Вы хотите пройтись по файлам, предполагая, что если это текстовый файл в формате 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!");
        });
    });
});
...