Catmandu(3pm)

Catmandu3pm

A data toolkit

Usage

    # 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

Overview

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 <YourDrive>
    docker run -v <YourDrive>:/home/catmandu/Home  -it librecat/catmandu
    # E.g.
    docker run -v C:\Users\alice:/home/catmandu/Home -it librecat/catmandu

Install extensions

    cpanm install <PackageName>
    # E.g.
    cpanm install Catmandu::MARC

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:

    [email protected]

or send in your bug reports or feature requests to our issue tracker at:

    https://github.com/LibreCat/Catmandu/issues

Releases

6 releases since Debian 8 (Jessie); the text changed 5 times.

  1. 8
  2. 9
  3. 10
  4. 11
  5. 12
  6. 13

Author

Nicolas Steenlant, "<nicolas.steenlant at ugent.be>"

From libcatmandu-perl 1.2024-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.