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 QUESTIONS, ISSUES & BUG REPORTS For any questions on the use of our modules please join our mailing list at: librecat-dev@lists.uni-bielefeld.de or send in your bug reports or feature requests to 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.