use tab delimited files
[crolist2marc] / crolist2marc.pl
index e74069c..39eb028 100755 (executable)
@@ -48,31 +48,31 @@ sub csv_file {
        print STDERR "\n";
 }
 
-csv_file( 'TEKTAG.csv', sub {
+csv_file( 'tsv/TEKTAG.csv', sub {
        my $line = shift;
 
-       my ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $textkey, $textres ) = split(/,/,$_);
+       my ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $textkey, $textres ) = split(/\t/,$_);
 
        my $text = $textkey . $textres; # FIXME fix CAPITAL letters in $textkey
 
        return ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $text );
 });
 
-csv_file( 'LONTAG.csv', sub {
+csv_file( 'tsv/LONTAG.csv', sub {
        my $line = shift;
 
-       my ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $text ) = split(/;/,$_, 7);
+       my ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $text ) = split(/\t/,$_, 7);
 
-       $text =~ s/;+$//;
-       $text =~ s/;/\n/g; # join OPIS[1-11]
+       $text =~ s/\t+$//;
+       $text =~ s/\t/\n/g; # join OPIS[1-11]
 
        return ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $text );
 });
 
-csv_file( 'IDNTAG.csv', sub {
+csv_file( 'tsv/IDNTAG.csv', sub {
        my $line = shift;
 
-       my ( $idsl, $tag, $STSL, $KZVS, $BIBRAZ, $HIRAZ, $KPS, $OKO ) = split(/,/,$_);
+       my ( $idsl, $tag, $STSL, $KZVS, $BIBRAZ, $HIRAZ, $KPS, $OKO ) = split(/\t/,$_);
 
        my @leader;
        $leader[5] = $STSL;
@@ -89,15 +89,15 @@ csv_file( 'IDNTAG.csv', sub {
        return;
 });
 
-csv_file( 'OBRTAG.csv', sub {
+csv_file( 'tsv/OBRTAG.csv', sub {
        my $line = shift;
 
-       my ( $IDSL, $TAG, $TAGNO, $ID, $SFI, $SFINO, $CODINF ) = split(/,/,$_);
+       my ( $IDSL, $TAG, $TAGNO, $ID, $SFI, $SFINO, $CODINF ) = split(/\t/,$_);
        return ( $IDSL, $TAG, $TAGNO, $ID, $SFI, $SFINO, $CODINF );
 });
 
 print STDERR "\n# getting all ids ";
-my @ids = keys %$data;
+my @ids = sort keys %$data;
 print STDERR scalar(@ids), " found\n";
 
 my $marc_file = 'liberated.marc';