Wow. Problem resolved. The script is bulletproof.
Thanks very much to both of you. Your gracious expertise has saved me a lot 
of time.

dp

On Wednesday, March 22, 2023 at 4:58:07 PM UTC-5 Christopher Stone wrote:

> On Mar 22, 2023, at 10:40, Doug Pinkerton <dplist...@gmail.com> wrote:
>
>
> I need to convert data formatted for humans into data formatted for a 
> database. The actual document is subject to privacy regulation. The 
> following is a mockup to illustrate the task. I need to convert this:
>
> ------------------------------
>
> Hey Doug,
>
> Here's a Perl filter that will do the job.
>
> -Chris
>
> #!/usr/bin/env perl -0777 -nsw
> # ------------------------------------------------------------
> # Auth: Christopher Stone
> # dCre: 2023/03/22 16:51
> # dMod: 2023/03/22 16:51
> # Task: Reformat Data for Use in a Database.
> # Tags: @ccstone, @Shell, @Script, @Reformat, @Data, @Database
> # ------------------------------------------------------------
> use v5.12;
>
> $_ =~ s!\A\s+|\s+\Z!!g;
>
> my @recordArray = split(/\n\n/, $_);
>
> foreach my $record (@recordArray) {
> my @record = split(/\n/, $record);
> my $line1 = $record[0];
> $line1 =~ s!^(.+)\h?-.+!$1!;
> my $line2 = $record[1];
> $line2 =~ s!^(\w+)\h.+!$1!;
> my $prefix = $line1 . "\t" . $line2;
> my $recordLength = scalar(@record) - 1;
> my @newRecord = @record[2 .. $recordLength];
>
> foreach my $recordItem (@newRecord) {
> say $prefix . "\t" . $recordItem;
> }
>
> }
>
>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "supp...@barebones.com" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bbedit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/95dca53c-3b4f-4fa4-9482-12e1f2c85a30n%40googlegroups.com.

Reply via email to