---
name: "yaz-marcdump"
section: "1"
platform: "linux"
package: "yaz"
version: "5.38.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/yaz-marcdump"
---

# yaz-marcdump(1)

MARC record dump utility

## NAME

yaz-marcdump - MARC record dump utility

## SYNOPSIS

**yaz-marcdump** \[**-i** *format*\] \[**-o** *format*\] \[**-f** *from*\] \[**-t** *to*\] \[**-l** *spec*\] \[**-c** *cfile*\] \[**-s** *prefix*\] \[**-C** *size*\] \[**-O** *offset*\] \[**-L** *limit*\] \[**-n**\] \[**-p**\] \[**-r**\] \[**-v**\] \[**-V**\] \[file...\]

## DESCRIPTION

**yaz-marcdump** reads MARC records from one or more files. It parses each record and supports output in line-format, ISO2709, **MARCXML**\[1\], **MARC-in-JSON**\[2\], **MarcXchange**\[3\] as well as Hex output.

This utility parses records ISO2709(raw MARC), line format, MARC-in-JSON format as well as XML if that is structured as MARCXML/MarcXchange.

MARC-in-JSON encoding/decoding is supported in YAZ 5.0.5 and later.

**Note**\

As of YAZ 2.1.18, OAI-MARC is no longer supported. OAI-MARC is deprecated. Use MARCXML instead.

By default, each record is written to standard output in a line format with newline for each field, $x for each sub-field x. The output format may be changed with option -o,

**yaz-marcdump** can also be requested to perform character set conversion of each record.

## OPTIONS

- \-i *format*

  Specifies input format. Must be one of marcxml, marc (ISO2709), marcxchange (ISO25577), line (line mode MARC), turbomarc (Turbo MARC), or json (MARC-in-JSON).

- \-o *format*

  Specifies output format. Must be one of marcxml, marc (ISO2709), marcxchange (ISO25577), line (line mode MARC), turbomarc (Turbo MARC), or json (MARC-in-JSON).

- \-f *from*

  Specify the character set of the input MARC record. Should be used in conjunction with option -t. Refer to the yaz-iconv man page for supported character sets.

- \-t *to*

  Specify the character set of the output. Should be used in conjunction with option -f. Refer to the yaz-iconv man page for supported character sets.

- \-l *leaderspec*

  Specify a simple modification string for MARC leader. The *leaderspec* is a list of pos=value pairs, where pos is an integer offset (0 - 23) for leader. Value is either a quoted string or an integer (character value in decimal). Pairs are comma separated. For example, to set leader at offset 9 to a, use 9='a'.

- \-s *prefix*

  Writes a chunk of records to a separate file with prefix given, i.e. splits a record batch into files with only at most "chunk" ISO2709 records per file. By default chunk is 1 (one record per file). See option -C.

- \-C *chunksize*

  Specifies chunk size; to be used conjunction with option -s.

- \-O *offset*

  Integer offset for at what position records whould be written. 0=first record, 1=second, .. With -L option, this allows a specific range of records to be processed.

- \-L *limit*

  Integer limit for how many records should at most be written. With -O option, this allows a specific range of records to be processed.

- \-p

  Makes yaz-marcdump print record number and input file offset of each record read.

- \-n

  MARC output is omitted so that MARC input is only checked.

- \-r

  Writes to stderr a summary about number of records read by yaz-marcdump.

- \-v

  Writes more information about the parsing process. Useful if you have ill-formatted ISO2709 records as input.

- \-V

  Prints YAZ version.

## EXAMPLES

The following command converts MARC21/USMARC in MARC-8 encoding to MARC21/USMARC in UTF-8 encoding. Leader offset 9 is set to 'a'. Both input and output records are ISO2709 encoded.

```
    yaz-marcdump -f MARC-8 -t UTF-8 -o marc -l 9=97 marc21.raw >marc21.utf8.raw
```

The same records may be converted to MARCXML instead in UTF-8:

```
    yaz-marcdump -f MARC-8 -t UTF-8 -o marcxml marc21.raw >marcxml.xml
```

Turbo MARC is a compact XML notation with same semantics as MARCXML, but which allows for faster processing via XSLT. In order to generate Turbo MARC records encoded in UTF-8 from MARC21 (ISO), one could use:

```
    yaz-marcdump -f MARC8 -t UTF8 -o turbomarc -i marc marc21.raw >out.xml
```

## FILES

*prefix*/bin/yaz-marcdump

*prefix*/include/yaz/marcdisp.h

## SEE ALSO

[**yaz**(7)](/yaz/7.md)

[**yaz-iconv**(1)](/yaz-iconv/1.md)

## AUTHORS

**Index Data**

## NOTES

- 1\.

  MARCXML

  https://loc.gov/standards/marcxml/

- 2\.

  MARC-in-JSON

  https://rossfsinger.com/blog/2010/09/a-proposal-to-serialize-marc-in-json/

- 3\.

  MarcXchange

  https://loc.gov/standards/iso25577/
