script help request

Anthony J Placilla anthony_placilla at SUTH.COM
Fri Oct 6 17:18:45 UTC 2006



Paul Lemmons wrote:
> Try this. I am sure it could be done better but I think it will get the
> job done with minimum confusion to a person not very familiar with perl.
> 
> Just add your cross reference values to the %xref variable in the script.
> 
> 
> #!/usr/bin/perl -w
> %xref = ('81230','jsmith',
>          '82111','mdoe',
>         );
> 
> $dirName = '/my/directory';
> 
> opendir(DIR,$dirName) or die "Unable to open Directory: $dirName, $!\n";
> while($fileName = readdir(DIR))
> {
>    if ($fileName =~ /^a_.{14}_b_.{7}_c_\d{2}_d_(\d{5}).*.txt$/)
>    {
>       $key = $1;
>       if (defined($xref{$key}))
>       {
>          $newName = $fileName;
>          $newName =~ s/$key/$xref{$key}/;
> 
>          print "Renaming $fileName -> $newName\n";
>          rename("$dirName/$fileName","$dirName/$newName")
>             or die "Unable to rename file: $dirName/$fileName to
> $dirName/$newName, $1\n";
>       }
>    }
> }
> close(DIR);
> 
> -------- Original Message  --------
> Subject: script help request
> From: Anthony J Placilla <anthony_placilla at SUTH.COM>
> To: For users of Fedora Core releases <fedora-list at redhat.com>
> Date: 10/06/2006 08:07 AM
> 
>> Ok, my perl-fu is non-existent.
>>
>> I have a dir on an FTP server that contains multiple files that have a
>> naming structure like so
>>
>> a_20061002201644_b_R01C002_c_30_d_81230_e_FOO_f_02_g_blah.txt
>>
>> the value d_<whatever> will be a number that is actually can be mapped
>> to a name
>> for example, 81230 will be jsmith
>> 82111 will be mdoe
>>
>> etc.
>>
>> I want to replace the number string with the name in each of, say 500
>> files & run it out of cron
>>
>> pointers or clues would be welcome. I am militantly unopposed to using
>> *any* tool, (perl, php, sed & awk or waving dead chickens) to get the
>> job done
>>
>>
> 



thank you *very* much.
I don't care about elegant as long as it works & this actually make
sense to me


-- 
Tony Placilla, RHCT, GSEC
anthony_placilla at suth.com


GPG-Key-ID: 1024D/C78F8B64              http://pgp.mit.edu
Key fingerprint = A8D5 7AFF CE88 4179 C792  D9A9 F197 2A15 C78F 8B64




More information about the fedora-list mailing list