NAME Catmandu - a data toolkit SYNOPSIS # From the command line # Convert data from one format to another $ catmandu convert JSON to CSV < data.json $ catmandu convert CSV to YAML < data.csv $ catmandu convert MARC to YAML < data.mrc # Fix data, add, delete, change fields $ catmandu convert JSON --fix 'move_field(title,my_title)' < data.json $ catmandu convert JSON --fix all_my_fixes.txt < data.json # Use a moustache preprocessor on the fix script $ catmandu convert JSON --fix all_my_fixes.txt --var opt1=foo --var opt2=bar < data.json # run a fix script $ catmandu run myfixes.fix # or, create an executable fix script $ cat myfixes.fix #!/usr/local/bin/catmandu run do importer(OAI,url:"http://biblio.ugent.be/oai") retain(_id) end $ chmod 755 myfixes.fix $ ./myfixes.fix DESCRIPTION Catmandu provides a command line tools for the conversion of various data formats including: JSON, YAML, RDF, CSV, TSV, XML and even Excel. Using extension modules, specialized conversions for metadata formats using in libraries, archives and museums is also supports. We provide support for MARC, MAB, MODS, OAI-PMH, PICA, PNX, RIS, LIDO, SRU and Z39.50. Specialized conversions require a mapping language. This is implemented in Catmandu using the `Fix` language. For a short introduction read Catmandu::Introduction. Online tutorials can be found at the end of this document. INSTALL From Source # Clone the directory git clone https://github.com/LibreCat/Catmandu # Build cd Catmandu cpanm -n -q --installdeps --skip-satisfied . perl Build.PL && ./Build && ./Build install Using Docker docker build -t librecat/catmandu . # Run catmandu with access to you local files at docker run -v :/home/catmandu/Home -it librecat/catmandu # E.g. docker run -v C:\Users\alice:/home/catmandu/Home -it librecat/catmandu INSTALL EXTENSIONS cpanm install # E.g. cpanm install Catmandu::MARC POPULAR EXTENSIONS Catmandu::Breaker Catmandu::Identifier Catmandu::MARC Catmandu::OAI Catmandu::PICA Catmandu::RDF Catmandu::SRU Catmandu::Stat Catmandu::Template Catmandu::Validator Catmandu::XLS Catmandu::XSD Catmandu::Z3950 SEE ALSO introduction Catmandu::Introduction documentation http://librecat.org/ blog https://librecatproject.wordpress.com/ step-by-step introduction from basics https://librecatproject.wordpress.com/2014/12/01/day-1-getting-catmandu/ command line client catmandu Perl API Catmandu::PerlAPI AUTHOR Nicolas Steenlant, CONTRIBUTORS Patrick Hochstenbach, patrick.hochstenbach at ugent.be Nicolas Franck, nicolas.franck at ugent.be Johann Rolschewski, jorol at cpan.org Vitali Peil, vitali.peil at uni-bielefeld.de Jakob Voss, nichtich at cpan.org Magnus Enger, magnus at enger.priv.no Christian Pietsch, christian.pietsch at uni-bielefeld.de Dave Sherohman, dave.sherohman at ub.lu.se Snorri Briem, snorri.briem at ub.lu.se Pieter De Praetere, pieter.de.praetere at helptux.be Doug Bell Upsana, me at upasana.me Stefan Weil Tom Hukins Michal Josef Špaček QUESTIONS, ISSUES & BUG REPORTS For any questions on the use of our modules, or bug reports, or feature requests, please use our issue tracker at: https://github.com/LibreCat/Catmandu/issues LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.