如何解析stdout的输出

时间:2017-11-11 15:33:29

标签: arrays node.js exec stdout child-process

例如,如果在nodejs中执行子进程,则执行以下操作:

(id .)

如何将回调函数中的流输出解析为数组以获得类似的结果?

exec("find /path/to/directory/ -name '*.txt'", callback);

目前的输出如下:

['file-1.txt', 'file-2.txt', 'file-3.txt', ...]

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

const exec = require('child_process').exec;
exec("find /path/to/directory -name '*.txt'", (error, stdout, stderr) => {
    if (error) {
        // handle error
    } else {
        var fileNames = stdout.split('\n').filter(String).map((path) => {
            return path.substr(path.lastIndexOf("/")+1);
        });
        console.log(fileNames); // [ 'file1.txt', 'file2.txt', 'file3.txt' ]
    }
});

const exec = require('child_process').exec;
exec("ls /path/to/directory | grep .txt", (error, stdout, stderr) => {
    if (error) {
        // handle error
    } else {
        var fileNames = stdout.split(/[\r\n|\n|\r]/).filter(String);
        console.log(fileNames); // [ 'file1.txt', 'file2.txt', 'file3.txt' ]
    }
});