2017-11-11 8 views
0

Zum Beispiel analysieren, wenn in NodeJS Prozess so etwas wie Kind ausführen:Wie Ausgabe von stdout

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

Wie kann ich den gestreamten Ausgang in meiner Callback-Funktion auf ein Array analysiere etwas wie so zu bekommen?

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

Die aktuelle Ausgabe ist wie folgt:

path/to/file-1.txt 
path/to/file-2.txt 
path/to/file-3.txt 

Danke für die Hilfe

+0

welche Parameter Rückruf hier nicht gibt ?? – wrangler

+0

Callback-Funktion (Fehler, stdout, stderr) {...} Die zurückgegebene Ausgabe sieht so aus: 'path/to/file1.txt' ' path/to/file1.txt' –

+0

Der zurücke Ausgang der Rückruf sieht so aus: 'pfad/zu/file1.txt'
' pfad/zu/file2.txt'
'pfad/zu/file3.txt' –

Antwort

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' ] 
    } 
}); 

oder

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' ] 
    } 
}); 
Verwandte Themen