Last active
July 25, 2019 03:19
-
-
Save mishafrenkel/b56ba957bc5ca994d07fdd58e29bb1b1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var grep = function (what, where, callback) { | |
| var exec = require('child_process').exec; | |
| exec("grep " + what + " " + where + " -nrH", function (err, stdin, stdout) { | |
| var list = {} | |
| var results = stdin.split('\n'); | |
| // remove last element (it’s an empty line) | |
| results.pop(); | |
| for (var i = 0; i < results.length; i++) { | |
| var eachPart = results[i].split(':') //file:linenum:line | |
| list[eachPart[0]] = [] | |
| } | |
| for (var i = 0; i < results.length; i++) { | |
| var eachPart = results[i].split(':') //file:linenum:line | |
| var details = {} | |
| var filename = eachPart[0] | |
| details['line_number'] = eachPart[1] | |
| eachPart.shift() | |
| eachPart.shift() | |
| details['line'] = eachPart.join(':') | |
| list[filename].push(details) | |
| } | |
| var results = [] | |
| var files = Object.keys(list) | |
| for (var i = 0; i < files.length; i++) { | |
| results.push({ 'file': files[i], 'results': list[files[i]] }) | |
| } | |
| callback(results) | |
| }); | |
| } | |
| grep(process.argv[2], process.argv[3], function (list) { | |
| for (let i = 0; i < list.length; i++) { | |
| console.log(list[i]); | |
| } | |
| }); | |
| module.exports = grep; | |
| /* | |
| ///////////////////// TO EXECUTETE THIS SCRIPT IN A SHELL/////////////////////// | |
| Input the following: | |
| node nameOfScriptFile.js 'searchTerm' 'directoryToSearch' | |
| */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment