For instance, the following command computes the hash of each file in the test folder:
find test -type f | nsed -r crypto -c 'fs.readFileSync($data, "utf8")' -c 'crypto.createHash("md5").update($data).digest("hex")'
To install and use Nsed, Node.js 7.6 or above is needed (due to the use of async/await).
To install, simply use npm or yarn:
npm install -g nsed
Each command is executed on the output of the previous one. You can reference
$data for the current input and
$index for the current position in the input.
If operating directly on properties or methods of the input, you can omit
find test -type f | nsed -r crypto -c 'fs.readFileSync($data, "utf8")' -c '.length'
Since it requires a recent Node.js implementation (7.6+), you can use advanced features like async/await.
To see all the available options, use
Input lines can be filtered out by using filter (
-f|--filter) or reverse filters (
For instance, the following command will print only files starting with
find test -type f | nsed -f '/^index/'
Regular expression can be used in commands and referenced later, using
For instance, the following command will print the second letter of each file:
find test -type f | nsed -c '.replace("test/", "")' -c '/.(.).+/' -c '$1'
Before processing commands, you can instruct nsed to require any available Node.js modules, by using
-r|--require switch. The module will be available with its name camelcased. For instance,
-r string_decoder will make
stringDecoder available for your commands.
-s|--source switch. The source file must export a function which accepts a string (
$data representing the current line) and a number (
$index, representing the current line in the input).
nsed needs, supports and has been tested on NodeJS 7.6+.
Copyright (C) 2017 and above Shogun email@example.com.
Licensed under the MIT license, which can be found at https://choosealicense.com/licenses/mit.