awk scripts problem after upgrade from RHEL-2.1 to RHEL-4

Ben Russo ben at muppethouse.com
Mon May 15 19:48:37 UTC 2006


The problem isn't with the shell script part.
It is with the awk part.


Waleed Harbi wrote:
> Try to add this option set -x  in your script "second line" to debug it and
> check for the syntax may be some one change something , set -x will help
> you.
> 
> On 5/12/06, Ben Russo <ben at muppethouse.com> wrote:
>>
>> We had two almost identical servers running RHEL-2.1
>> One of them we upgraded to RHEL-3, then to RHEL-4 (in a two stroke
>> process).
>>
>>                  up2date -u
>>         boot from rhel-3 cd#1,
>>                 boot: linux upgrade
>>         default options all the way
>>         reboot
>>                 up2date -u
>>         boot from rhel-4 cd#1
>>                 boot: linux upgrade
>>         default options all the way
>>         reboot
>>                 up2date -u
>>
>> Now the second server (which was working fine yesterday) is RHEL-4
>> and old legacy accounting scripts don't work.
>>
>> A regular user on the system has a script called "idxlist"
>> it is:
>>
>>         [ -z "$LOCAL" ] && LOCAL=/u/apps/utilities
>>         awk -f$LOCAL/idxlist.awk -v date=$1 -v ext=$2 $LOCAL/idxpath
>>
>> idxlist.awk's contents look like this:
>>
>> BEGIN           {
>>                  dash=index(date,"-")
>>                  plus=index(date,"+")
>>                  if (dash!=0)
>>                          {
>>                          range=1
>>                          beg=substr(date,1,dash-1)
>>                          end=substr(date,dash+1)
>>                          if (length(end)<6)
>>                                  end=substr(beg,1,6-length(end)) end
>>                          }
>>                  else if (plus!=0)
>>                          {
>>                          sequence=1
>>                          beg=substr(date,1,plus-1)
>>                          count=substr(date,plus+1)+0
>>                          }
>>                  else    {
>>                          singular=1
>>                          }
>>                  if(ext!="")
>>                          ext="." ext
>>                  }
>> /^\*/           {next}
>> singular && substr(date,1,4)==$1        {
>>                  look=1
>> #               NF=0
>>                  "ls " $2 "arc" date "*" | getline
>>                  if (NF==0)
>>                          print 0
>>                  else print substr($1,1,length($1)-4) ext
>>                  next
>>                  }
>> sequence==1     {
>>                  while("ls " $2 | getline file)
>>                          {
>>                          look=1
>>                          arc=(substr(file,1,3)=="arc")
>>                          nam=index(file,"arc")
>>                          #dat=substr(file,nam+3,6)+0
>>                          dat=substr(file,nam+3,6)
>>                          if (dat==beg&&start==0)
>>                                  start=1
>>                          if (arc && start && start<=count)
>>                                  {
>>                                  if (found[dat]==0)
>>                                          {
>>                                          print $2
>> substr(file,1,length(file)-4) ext
>>                                          start++
>>                                          }
>>                                  found[dat]=1
>>                                  }
>>                          }
>>                  next
>>                  }
>> range==1        {
>>                  while("ls " $2 | getline file)
>>                          {
>>                          look=1
>>                          nam=index(file,"arc")
>>                          #dat=substr(file,nam+3,6)+0
>>                          dat=substr(file,nam+3,6)
>>                          if (dat>=beg && dat<=end)
>>                                  {
>>                                  if (found[dat]==0)
>>                                          print $2
>> substr(file,1,length(file)-4) ext
>>                                  found[dat]=1
>>                                  }
>>                          }
>>                  }
>> END     {
>>          if (look==0)
>>                  print 0
>>          }
>>
>> ######  END OF IDXLIST.AWK
>>
>> That would seem pretty simple.
>> The script just takes a date in the form of   060512    or 060507+5  or
>> 060512-11
>>
>> and it would give you a list of files in the directories that are listed
>> in /u/apps/utilities/idxpath that contain the date string in the range
>> given.
>>
>> It works fine on server 1 (RHEL-2.1)  but not on the upgraded server
>> (RHEL-4)
>>
>> any ideas?
>>
>> -Ben.
>>
>> -- 
>> redhat-list mailing list
>> unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
>> https://www.redhat.com/mailman/listinfo/redhat-list
>>
> 
> 
> 




More information about the redhat-list mailing list