is a Perl script to filter or count bibliographic records based on condition built upon tag name, indicators, subfield, field value (or tag, positions, value for control fields 00x).

The condition (introduced by -e) is powerful: tag, indicators, subfield and value can be regular expressions. For instance:

-e '100,,,a,^A' extracts records containing field 100$a starting with 'A'
-v -e '008,35,37,(ita|eng)' excludes records with language ita or eng in field 008
-c -e '(1|7)(0|1)(0|1),,2' counts records with tag among 100,110,111,700,710,711 and indicator 2 equal 2

Read more running -h.


  1. download (.zip file)
  2. uncompress the file
  3. in Linux/Unix (suggested) environment, allow script execution with command
    chmod 755
  4. requires Perl, MARC::Batch library or more libraries available at CPAN.

Author: Stefano Bargioni <bargioni [at] pusc [dot] it>.

Current stable version: 1.4.1, May 22, 2015.

A different approach

Mark Triggs has developed another MARCgrep, a powerful tool for working with very large data sets.