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