---
name: "Catmandu"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu"
---

# Catmandu(3pm)

a data toolkit

## 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 <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
```

## 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, `"<nicolas.steenlant at ugent.be>"`

## 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.
