"Albert L. Lukaszewski" wrote: > > At the earlier suggestion of Rob Dixon (rob[at]dixon.nildram.co.uk), I > here present a sample of the data I am trying to convert, the output I > desire, and the program as I have written it thus far. > > I am using "4Q246.db" as a sample of the larger file. In between each > text, I want it to add three CRs, two blank lines, between the end of > the one text and the title of the next. Ultimately, I would love it > if they could all go into files according to their names,
Where do you get their names from? > but I am > pressed for time and just need the second field for each line collated > for right now. > > > DATA: > > 4Q246.1.1, yhwl[(], prep.|s5, prep.loc~, > 4Q246.1.1, tr#, v-G11, v., <yr# to settle > 4Q246.1.1, lpn, v-G10, v., <lpn to fall > 4Q246.1.1, Mdq, prep., prep.locative, <Mdq before > 4Q246.1.1, )ysrk, n-mse, p.obj., <)srk chair > > 4Q246.1.2, )kl[m], n-mse, vocative, <Klm king > 4Q246.1.2, )ml(<m>[l], prep.|n-mse, prep.temporal|p.obj., <Ml( forever > 4Q246.1.2, ht), p2, s., <ht( you > 4Q246.1.2, zgr, adj-msa, adj.modifier, <zgr angry/distressed > 4Q246.1.2, Kyn#w, c.conj.|n-mpc|s2, s., <yn# year > > 4Q246.1.3, ...,, , > 4Q246.1.3, Kwzx, n-msc|s2, , <wzx vision > 4Q246.1.3, )lkw, c.conj.|adj-mse, adj.substantive, > 4Q246.1.3, ht), p2, s., <ht) you > 4Q246.1.3, d(, prep., prep.temporal, <d( until > 4Q246.1.3, )ml(, n-mse, p.obj., <Ml( forever > > OUTPUT (right justified eventually): > > )ysrk Mdq lpn tr# yhwl[(] 4Q246.1.1 > Kyn#w zgr ht) )ml(<m>[l] )kl[m] 4Q246.1.2, > )ml( d( ht) )lkw Kwzx ... 4Q246.1.3 Using your data as an example, this will do what you want: #!/usr/bin/perl use warnings; use strict; my $file = '4Q246.db'; open INFO, $file or die "Cannot open $file: $!"; open OUT, ">>qa.txt" or die "Cannot open file 'qa.txt' $!"; my %data; while ( <INFO> ) { next unless /\S/; my ( $ref, $form ) = split /\s*,\s*/; if ( exists $data{ $ref } ) { $data{ $ref } = "$form $data{ $ref }"; } else { while ( my ( $key, $val ) = each %data ) { print OUT "$val $key\n"; delete $data{ $key }; } $data{ $ref } = $form; } } while ( my ( $key, $val ) = each %data ) { print OUT "$val $key\n"; } __END__ John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]