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