gpt4 book ai didi

node.js - 如何使用node js child_process exec运行unix diff命令?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:47 24 4
gpt4 key购买 nike

我需要使用 Node 来生成一些文件的差异。我已经尝试过diff npm package ,虽然效果很好,但它的性能比您在/usr/bin/中找到的 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

我尝试过各种不同形式的引用。

我使用完全相同的文件尝试过的所有其他命令都有效。 catwc

有什么想法吗?

最佳答案

好吧,我正在回答我自己的问题。

如果发现差异,diff 命令将返回失败退出代码。因此,console.log(stdout) 调用从未被到达。如果我忽略该错误,一切都会正常。

var childProcess = require('child_process');
var cmd = "diff /path/to/file1.txt /path/to/file2.txt";
childProcess.exec(cmd, (error, stdout, stderr) => {
console.log(stdout);
});

就像一个魅力。

关于node.js - 如何使用node js child_process exec运行unix diff命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com