The new Node.js module “lazylines” allows you to read a text stream, one line at a time, lazily.
var ll = require("lazylines.js"); process.stdin.resume(); var inp = new ll.LineReadStream(process.stdin); var count = 1; inp.on("line", function (line) { console.log(count+": "+ll.chomp(line)); count++; });There are more examples in the demo/ directory. lazylines is very handy for shell programming. For example, you can implement a script that lets you do the following.
# List jpg files, oldest first (-t -r), then wrap ls -1 -t -r *.jpg | addlinecounts.js 'mv "{line}" {padi}.jpg' | bashThe above executes commands such as
mv "new.jpg" 001.jpg mv "newer.jpg" 002.jpg mv "newest.jpg" 003.jpg
npm install lazylines