Мне нужно использовать узел для генерации разностей некоторых файлов. Я пробовал diff npm package, и хотя это отлично работает, он намного менее эффективен, чем версия diff, которую вы найдете в/usr/bin /.Как использовать nodejs childprocess exec для запуска команды unix diff?
Когда я пытаюсь использовать exec для запуска команды diff, это всегда ошибки.
var childProcess = require('child_process');
var cmd = "diff /path/to/file1.txt /path/to/file2.txt";
childProcess.exec(cmd, (error, stdout, stderr) => {
if(error) {
console.log(error);
} else {
console.log(stdout);
}
});
Выход:
{ [Error: Command failed: /bin/sh -c diff /path/to/file1.txt /path/to/file2.txt
]
killed: false,
code: 1,
signal: null,
cmd: '/bin/sh -c diff /path/to/file1.txt /path/to/file2.txt' }
Если я запускаю команду в командной строке сам он отлично работает.
Я пробовал работать /usr/bin/diff
вместо diff
.
Я пробовал различные формы цитирования вещей.
Все остальные команды, которые я пробовал, используя одни и те же файлы, сработали. cat
, wc
, и т.д.
Любые мысли?
Тот же выпуск здесь, я тестирую 'stderr' intead – EloHailwidis