/[MARC-Fast]/trunk/scripts/dump_fastmarc.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/scripts/dump_fastmarc.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6 by dpavlin, Sun Dec 18 23:12:26 2005 UTC revision 7 by dpavlin, Wed Dec 28 22:03:24 2005 UTC
# Line 7  use MARC::Fast; Line 7  use MARC::Fast;
7  use Getopt::Std;  use Getopt::Std;
8  use Data::Dumper;  use Data::Dumper;
9    
10    =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    =item -n number
23    
24    dump just record C<number>
25    
26    =item -l limit
27    
28    import just first C<limit> records
29    
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  my %opt;  my %opt;
43  getopts('dn:', \%opt);  getopts('dn:l:h', \%opt);
44    
45  my $file = shift @ARGV || die "usage: $0 [-n number] [-d] file.marc\n";  my $file = shift @ARGV || die "usage: $0 [-n number] [-l limit] [-h] [-d] file.marc\n";
46    
47  my $marc = new MARC::Fast(  my $marc = new MARC::Fast(
48          marcdb => $file,          marcdb => $file,
49          debug => $opt{'d'},          debug => $opt{d},
50  );  );
51    
52    
53  my $min = 1;  my $min = 1;
54  my $max = $marc->count;  my $max = $marc->count;
55    
56  if (my $mfn = $opt{'n'}) {  if (my $mfn = $opt{n}) {
57          $min = $max = $mfn;          $min = $max = $mfn;
58          print STDERR "Dumping $mfn only\n";          print STDERR "Dumping $mfn only\n";
59    } elsif (my $limit = $opt{l}) {
60            print STDERR "$file has $max records, using first $limit\n";
61            $max = $limit;
62  } else {  } else {
63          print STDERR "$file has $max records...\n";          print STDERR "$file has $max records...\n";
64  }  }
65    
66  for my $mfn ($min .. $max) {  for my $mfn ($min .. $max) {
67          my $rec = $marc->fetch($mfn) || next;          my $rec = $marc->fetch($mfn) || next;
68          print Dumper($rec);          print "rec is ",Dumper($rec) if ($opt{d});
69          print "REC $mfn\n";          print "REC $mfn\n";
70          foreach my $f (sort keys %{$rec}) {          foreach my $f (sort keys %{$rec}) {
71                  print "$f\t", join('', $rec->{$f}) ,"\n";                  my $dump = join('', @{ $rec->{$f} });
72                    $dump =~ s/\x1e$//;
73                    $dump =~ s/\x1f/\$/g;
74                    print "$f\t$dump\n";
75          }          }
76          print "\n";          print "\n";
77          print Dumper($marc->to_hash($mfn));          print "hash is ",Dumper($marc->to_hash($mfn)) if ($opt{h});
78  }  }

Legend:
Removed from v.6  
changed lines
  Added in v.7

  ViewVC Help
Powered by ViewVC 1.1.26