Skip to content

ingydotnet/app-pipefilter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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‐23                App::PipeFilter(3)

About

Pipeline filters for structured data

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Perl 100.0%