Как мне прочитать входной файл, изменить его содержимое и сохранить результат в выходной файл с помощью node.js? - PullRequest
0 голосов
/ 08 октября 2018

В моем проекте у меня есть входной файл, как в этой программе:

 var fs = require('fs');
 var str = fs.readFileSync('input.txt', 'utf8');

Но мне пришлось использовать эту команду в моем терминале:

cat input.txt | ./prog.sh > result.txt

Можете ли вы помочь мне, пожалуйста, потому что я не нашел, как я могу кодировать общий входной файл в JS с такой командой в терминале?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Следующий код позволяет принимать каждый тип имени документа при вводе команды терминала, этот код хорошо работает:

#! / Usr / bin / env node

let chunk = "";

process.stdin.on("data", data => {
    chunk += data.toString();
});

process.stdin.on("end", () => {
    chunk.replace(/^\s*[\r\n]/gm,"").split(/\s+/).forEach(function (s) {
        process.stdout.write(
        s === 'bob'
        ? 'boy \n'
        : s === 'alicia'
           ? 'girl\n'
           : s === 'cookie'
               ? 'dog \n'
               : 'unknown \n');
    });
});

Мы можем выполнить его правильно с помощью следующей команды: cat input.txt | /prog2.js > result.txt

0 голосов
/ 09 октября 2018

Это должно полностью перезаписать файл result.txt или создать его заново, если он не существует.

const fs = require('fs');

const inputFile = "./input.txt"; 
const outputFile = "./result.txt";

var str = fs.readFileSync('input.txt', 'utf8').toString();

var prog = (fileStr) => {
  let modifiedStr = fileStr.trim() + " !!!modified!!!"; // do something to modify the string
  return modifiedStr;
};

let fileContents = prog(str);

fs.writeFile(outputFile, fileContents, function(err){
  if (err) throw err;
  console.log('string saved to ' + outputFile);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...