Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Pipeline filters for structured data
Perl
branch: master

This branch is 5 commits behind rcaputo:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
eg
lib/App
MANIFEST.SKIP
README
TODO.otl
dist.ini

README

App::PipeFilter(3)    User Contributed Perl Documentation   App::PipeFilter(3)



NAME
       App::PipeFilter

DESCRIPTION
       App::PipeFilter is a distribution of shell pipeline filters designed to
       work with structured data like JSON rather than whitespace separated
       fields.

       For example, jcut is a simple version of cut(1) that understands JSON
       objects rather than whitespace separated fields.

         % head −1 sample.json
         {"network":"freenode","channel":"#perl","nick":"dngor","karma":"120"}

         % jcut −o network −o channel < eg/sample.json | sort | uniq
         {"network":"efnet","channel":"#perl"}
         {"network":"efnet","channel":"#poe"}
         {"network":"efnet","channel":"#reflex"}
         {"network":"freenode","channel":"#perl"}
         {"network":"freenode","channel":"#poe"}
         {"network":"freenode","channel":"#reflex"}
         {"network":"magnet","channel":"#perl"}
         {"network":"magnet","channel":"#poe"}
         {"network":"magnet","channel":"#reflex"}

       The jsonpath filter supports more complex expressions using
       JSON::Path’s variant of JSONPath.

         curl −s 'http://api.duckduckgo.com/?q=poe&o=json' |
         jsonpath −o '$..Topics.*.FirstURL' −o '$..Topics.*.Text' |
         grep −i perl |
         jmap −i col0 −o url −i col1 −o title |
         json2yaml
         −−−
         title: Perl Object Environment, a library for event driven multitasking for the Perl programming language
         url: http://duckduckgo.com/Perl_Object_Environment

DESIGN GOAL
       App::PipeFilter utilities generally follow the UNIX convention of
       printing one record per line of text.  This maximizes compatibility
       with UNIX utilities like sort(1), uniq(1) and grep(1).

PRO TIPS
       JSON isn’t particularly concise, so put grep(1), jcut(1) and other
       filters that eliminate data as early as possible in pipelines.

SEE ALSO
       jcat − concatenate and print JSON files

       jcut − cut out selected portions of each JSON object in a file

       jmap − map input JSON fields to output JSON fields by renaming them

       json2yaml − convert files of JSON objects into a stream of YAML objects

       jsonpath − use JSON::Path to cut out selected portions of JSON objects

       jsort − sort input files of JSON objects on key fields

       mysql2json − convert mysql −B output to JSON object streams

       <http://json.org/>

       <http://search.cpan.org/perldoc?JSON::Path>

       <http://goessner.net/articles/JsonPath/>

BUGS
       https://rt.cpan.org/Public/Dist/Display.html?Name=App−PipeFilter
       <https://rt.cpan.org/Public/Dist/Display.html?Name=App‐PipeFilter>

REPOSITORY
       https://github.com/rcaputo/app−pipefilter
       <https://github.com/rcaputo/app‐pipefilter>

COPYRIGHT and LICENSE
       App::PipeFilter is Copyright 2011 by Rocco Caputo.  All rights are
       reserved.  App::PipeFilter is released under the same terms as Perl
       itself.



perl v5.10.0                      2011‐05‐24                App::PipeFilter(3)
Something went wrong with that request. Please try again.