Over a million developers have joined DZone.

Read a Text Stream Line by Line with lazylines for Node.js

· Web Dev Zone

Easily build powerful user management, authentication, and authorization into your web and mobile applications. Download this Forrester report on the new landscape of Customer Identity and Access Management, brought to you in partnership with Stormpath.

The new Node.js module “lazylines” allows you to read a text stream, one line at a time, lazily.

 

Examples

The following code reads input from stdin and prepends a number to each line.

    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' | bash

The above executes commands such as 

    mv "new.jpg" 001.jpg
    mv "newer.jpg" 002.jpg
    mv "newest.jpg" 003.jpg

Installation

    npm install lazylines

Related post

 

The Web Dev Zone is brought to you by Stormpath—offering a complete, pre-built User Management API for building web and mobile applications, and APIs. Download our new whitepaper: "Build Versus Buy: Customer Identity Management for Web and Mobile Applications".

Topics:

Published at DZone with permission of Axel Rauschmayer , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}