From 9b3ddb62d8dcbb086438ea873a513480af4151cb Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Thu, 7 Aug 2008 18:46:10 +0000 Subject: [PATCH] option for inverse select --- select_marc_as_text.pl | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/select_marc_as_text.pl b/select_marc_as_text.pl index 955edd9..6a28e88 100755 --- a/select_marc_as_text.pl +++ b/select_marc_as_text.pl @@ -5,7 +5,9 @@ use MARC::Record; use MARC::File::XML ( BinaryEncoding => 'utf-8' ); use MARC::Field; -my $record_id_file = $ARGV[0]; +my $inverse = $ARGV[0] eq "inverse"; + +my $record_id_file = $ARGV[1]; my %record_ids; open FILE, $record_id_file; @@ -14,14 +16,14 @@ while (my $record_id = ) { } close FILE; -my $id_tag = $ARGV[1]; my $id_subfield = $ARGV[2]; +my $id_tag = $ARGV[2]; my $id_subfield = $ARGV[3]; binmode(STDOUT, ':utf8'); binmode(STDIN, ':utf8'); my $M; -foreach $argnum ( 3 .. $#ARGV ) { +foreach $argnum ( 4 .. $#ARGV ) { print STDERR "Processing " . $ARGV[$argnum] . "\n"; @@ -44,7 +46,10 @@ foreach $argnum ( 3 .. $#ARGV ) { } $id = $id->as_string($id_subfield); - if (defined $record_ids{ $id }) { + if ( + ( ! $inverse && defined $record_ids{ $id } ) || + ( $inverse && ! defined $record_ids{ $id } ) + ) { open FILE, ">$id.txt"; binmode(FILE, ':utf8'); print FILE $record->as_formatted(); -- 1.7.2.5