| 1 |
1 |
dpavlin |
#!/usr/bin/perl -w |
| 2 |
|
|
|
| 3 |
|
|
use strict; |
| 4 |
|
|
use blib; |
| 5 |
|
|
|
| 6 |
|
|
use MARC::Fast; |
| 7 |
4 |
dpavlin |
use Getopt::Std; |
| 8 |
26 |
dpavlin |
use Data::Dump qw/dump/; |
| 9 |
1 |
dpavlin |
|
| 10 |
7 |
dpavlin |
=head1 NAME |
| 11 |
|
|
|
| 12 |
|
|
dump_fastmarc.pl - display MARC records |
| 13 |
|
|
|
| 14 |
|
|
=head2 USAGE |
| 15 |
|
|
|
| 16 |
|
|
dump_fastmarc.pl /path/to/dump.marc |
| 17 |
|
|
|
| 18 |
|
|
=head2 OPTIONS |
| 19 |
|
|
|
| 20 |
|
|
=over 16 |
| 21 |
|
|
|
| 22 |
10 |
dpavlin |
=item -o offset |
| 23 |
7 |
dpavlin |
|
| 24 |
10 |
dpavlin |
dump records starting with C<offset> |
| 25 |
7 |
dpavlin |
|
| 26 |
|
|
=item -l limit |
| 27 |
|
|
|
| 28 |
10 |
dpavlin |
dump just C<limit> records |
| 29 |
7 |
dpavlin |
|
| 30 |
|
|
=item -h |
| 31 |
|
|
|
| 32 |
|
|
dump result of C<to_hash> on record |
| 33 |
|
|
|
| 34 |
|
|
=item -d |
| 35 |
|
|
|
| 36 |
|
|
turn debugging output on |
| 37 |
|
|
|
| 38 |
|
|
=back |
| 39 |
|
|
|
| 40 |
|
|
=cut |
| 41 |
|
|
|
| 42 |
4 |
dpavlin |
my %opt; |
| 43 |
10 |
dpavlin |
getopts('do:l:h', \%opt); |
| 44 |
1 |
dpavlin |
|
| 45 |
10 |
dpavlin |
my $file = shift @ARGV || die "usage: $0 [-o offset] [-l limit] [-h] [-d] file.marc\n"; |
| 46 |
4 |
dpavlin |
|
| 47 |
1 |
dpavlin |
my $marc = new MARC::Fast( |
| 48 |
|
|
marcdb => $file, |
| 49 |
7 |
dpavlin |
debug => $opt{d}, |
| 50 |
1 |
dpavlin |
); |
| 51 |
|
|
|
| 52 |
|
|
|
| 53 |
4 |
dpavlin |
my $min = 1; |
| 54 |
|
|
my $max = $marc->count; |
| 55 |
|
|
|
| 56 |
7 |
dpavlin |
if (my $mfn = $opt{n}) { |
| 57 |
4 |
dpavlin |
$min = $max = $mfn; |
| 58 |
6 |
dpavlin |
print STDERR "Dumping $mfn only\n"; |
| 59 |
7 |
dpavlin |
} elsif (my $limit = $opt{l}) { |
| 60 |
|
|
print STDERR "$file has $max records, using first $limit\n"; |
| 61 |
|
|
$max = $limit; |
| 62 |
6 |
dpavlin |
} else { |
| 63 |
|
|
print STDERR "$file has $max records...\n"; |
| 64 |
4 |
dpavlin |
} |
| 65 |
|
|
|
| 66 |
|
|
for my $mfn ($min .. $max) { |
| 67 |
1 |
dpavlin |
my $rec = $marc->fetch($mfn) || next; |
| 68 |
26 |
dpavlin |
print "rec is ",dump($rec) if ($opt{d}); |
| 69 |
1 |
dpavlin |
print "REC $mfn\n"; |
| 70 |
22 |
dpavlin |
print $marc->last_leader,"\n"; |
| 71 |
11 |
dpavlin |
print $marc->to_ascii($mfn),"\n"; |
| 72 |
28 |
dpavlin |
print "hash is ",dump($marc->to_hash($mfn, include_subfields => 1)) if ($opt{h}); |
| 73 |
1 |
dpavlin |
} |