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@xxxxxxxx> > To: For users of Fedora Core releases <fedora-list@xxxxxxxxxx> > 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@xxxxxxxx GPG-Key-ID: 1024D/C78F8B64 http://pgp.mit.edu Key fingerprint = A8D5 7AFF CE88 4179 C792 D9A9 F197 2A15 C78F 8B64