/usr/bin/mrc2mkr is in libmarc-file-marcmaker-perl 0.05-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | #!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
=head2
Converts raw MARC (ISO 2709) format files into MARCMaker format.
=head1 SYNOPSIS
B<mrc2mkr> [options] file(s)
=over 4
=item options
=over 4
=item --help
Print a summary of commands
=item --[no]stats
Print a record count by file at the end. (Default: on)
=back
=back
=head2 TODO
Separate warnings printing from record printing.
Print records to file rather than screen?
Update once as_marcmaker() method is available for full record encoding.
=cut
###########################
### Initialize includes ###
### and basic needs ###
###########################
use strict;
use warnings;
use MARC::Record;
use MARC::File::USMARC;
use MARC::File::MARCMaker;
use Getopt::Long;
use constant USAGE => <<"END";
Usage: mkr2mrc [options] file(s)
options
--help
Print a summary of commands
--version
Print version
--[no]quiet
Suppress status messages
--[no]stats
Print a record count by file at the end
END
my $stats = 1;
my $help = 0;
my $quiet = 0;
my $rc = GetOptions(
"stats!" => \$stats,
"quiet!" => \$quiet,
"help" => \$help,
"version" => sub { print "$0, using MARC::Record v$MARC::Record::VERSION and MARC::File::MARCMaker v$MARC::File::MARCMaker::VERSION\n"; exit 1; },
);
my @files = @ARGV;
die USAGE if $help or (not $rc) or (@files == 0);
#########################
### Start main program ##
#########################
print ("Welcome to MARC to MARCMaker script\n");
my %counts;
my %errors;
for my $filename ( @files ) {
$counts{$filename} = 0;
$errors{$filename} = 0;
my $file = MARC::File::USMARC->in( $filename ) or die $MARC::File::ERROR;
warn "$filename\n" unless $quiet;
my $runningrecordcount = 0;
while (my $record = $file->next()) {
if ( not $record ) {
warn $MARC::Record::ERROR;
++$errors{$filename};
} else {
++$counts{$filename};
} #else record decoded
print MARC::File::MARCMaker->encode($record);
if ( my @warnings = $record->warnings() ) {
++$errors{$filename};
print join( "\n", $record->title, @warnings, "" );
} #if warnings found during decoding process
} # while
$file->close();
} # for
if ( $stats ) {
print "\n\n";
print " Recs Errs Filename\n";
print "----- ----- --------\n";
for my $key ( sort keys %counts ) {
printf( "%5d %5d %s\n", $counts{$key}, $errors{$key}, $key );
} # for
} # if stats
#####################
### END OF PROGRAM ##
#####################
=head1 LICENSE
This code may be distributed under the same terms as Perl itself.
Please note that this code is not a product of or supported by the
employers of the various contributors to the code.
=head1 AUTHOR
Bryan Baldus
eija [at] inwave [dot] com
Based on marclint.
Copyright (c) 2005
=cut
|