Script behaving differently on two servers


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Script behaving differently on two servers
# 1  
Old 09-13-2006
Script behaving differently on two servers

All,

I have a script that runs on 2 servers and there seems to be something wrong. It's producing different results on the 2 servers.

Here is the script on server1 which is behaving correctly but on 2 behaving differently.
[QUOTE]
Quote:
awk 'FNR != 1 {


data[NR] = $0
out=FILENAME ".new"
file[NR]=out
records[out]=NR

}

END {
for ( r in records ) {
r_count=-1
for ( j in file ) {
if ( file[j] == r ) {
r_count++
}
}
if ( r_count != data[records[r]]) {
printf "Record count error in : %s\n", substr(r, 0, length(r)-3)
exit(1);
}
}
for ( i in file ) {
if ( i != records[file[i]] ) {
print data[i] > file[i]
}
}
close(file[i])
close(complete_file)
}
' $files
2nd server:

Quote:
awk 'FNR != 1 {


data[NR] = $0
out=FILENAME ".new"
file[NR]=out
records[out]=NR

}

END {
for ( r in records ) {
r_count=-1
for ( j in file ) {
if ( file[j] == r ) {
r_count++
}
}
if ( r_count != data[records[r]]) {
printf "Record count error in : %s\n", substr(r, 0, length(r)-3)
exit(1);
}
}
for ( i in file ) {
if ( i != records[file[i]] ) {
print data[i] > file[i]
}
}
close(file[i])
close(complete_file)
}
' $files
#done
I couldn't make out whats the error is? Please help
# 2  
Old 09-13-2006
questions

What is the result you expect and what is the o/p you get? What are the input files like? And what errors, if any, do you get? Its very difficult to make a guess. What Unix runs on both servers?
# 3  
Old 09-13-2006
The script checks a file and then writes the data rows to the new file.

The file will be like this format

Header
Data
Conut of data rows

If the data rows equals the last row in the file which is Count of data rows
then the script writes the data rows to a new file with .new extension appended to the original file.

sample output in debug mode from the code2 which is having problem. The 1st code doesn't throw any error and it's working correctly.

Quote:
+ awk FNR != 1 {


data[NR] = $0
out=FILENAME ".new"
file[NR]=out
records[out]=NR

}

END {
for ( r in records ) {
r_count=-1
for ( j in file ) {
if ( file[j] == r ) {
r_count++
}
}
if ( r_count != data[records[r]]) {
printf "Record count error in : %s\n", substr(r, 0, length(r)-3)
exit(1);
}
}
for ( i in file ) {
if ( i != records[file[i]] ) {
print data[i] > file[i]
}
}
close(file[i])
close(complete_file)
}
AUD01_CARE_DLY_20060912.dat
Record count error in : AUD01_CARE_DLY_20060912.dat.
The count in the file is correct but for some unkonwn reason it's showing error.

The code on 1 runs on HP-UX
and code on server 2 runs on SUNos
# 4  
Old 09-13-2006
use nawk

Use nawk on Sun OS. I am not sure though if that solves your problem..
# 5  
Old 09-13-2006
Awesome!!!!!

Perfect. But why is this different behavior on different boxes?
# 6  
Old 09-13-2006
flavours of awk

You have different flavors of awk given by the HP & Sun. I havent worked on Sun OS but if you search this forum, there are similar issues encountered.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script modification - treat certain files differently

awk 'BEGIN{OFS=","} FNR == 1 {if (NR > 1) {print fn,fnr,nl} fn=FILENAME; fnr = 1; nl = 0} {fnr = FNR} /UNUSUAL/ && /\.gz/ ~ /FILENAME/ {nl++} <'{system ("gunzip -cd FILENAME")}' END ... (2 Replies)
Discussion started by: SkySmart
2 Replies

2. Filesystems, Disks and Memory

Different partitions of a drive behaving differently in Windows

I have a memory card of my Nokia N73 attached to laptop. There are a few partitions. Why all partitions behave differently? As clear from the attachments, for some partition, delete option is disabled. See 'Disk 1' which is my memory card. Here, patition 'G' (CHECK), i created in windows. The... (6 Replies)
Discussion started by: ravisingh
6 Replies

3. Shell Programming and Scripting

Same KSH behaving differently on diff servers

HI all I have written a ksh to execute PL/sql procedure and generate the log file. The script is working fine to the extent of calling the taking input, executing PL/SQL procedure. On one server the log file is getting generated properly. i,e it shows the DBMS output . The log file size was... (9 Replies)
Discussion started by: ramakrishnakini
9 Replies

4. Shell Programming and Scripting

jobs command behaving differently in script

Here is my test script: #!/bin/sh result=`jobs` echo " Jobs: "$result result=`ls` echo " LS "$result Here is the output: Jobs: LS 0 1 2 3 4 5 6 7 gcd initialize.sh #inter_round_clean.sh# inter_round_clean.sh inter_round_clean.sh~ look parallel_first_run.sh... (3 Replies)
Discussion started by: nealh
3 Replies

5. Shell Programming and Scripting

Executing a script from CRON behaves differently than terminal

Hi have a script which transferers from Microsoft server to Linux box. The scripts(ksh) is on Linux box. If I run script from terminal, it transfers files to directory. Where as If I run script from CRON. It does not. Here is the log of both: Terminal execution log:... (2 Replies)
Discussion started by: dipeshvshah
2 Replies

6. Shell Programming and Scripting

sed and cut behaving differently

I have attached a file with few records. First 2 characters of each record are binary characters. I can remove it by and it works fine. But is behaving differently and removing more than expected characters. Can someone help me in accomplishing it through sed? Thanks in advance. (13 Replies)
Discussion started by: amicon007
13 Replies

7. Shell Programming and Scripting

Why is a variable behaving differently in ksh script.

Guys i have strange behaviour with command output being saved in a variable instead of a tmp file. 1. I suck command output into a variable Sample command output # cleanstats DRIVE INFO: ---------- Drv Type Mount Time Frequency Last Cleaned Comment *** ****... (1 Reply)
Discussion started by: lavascript
1 Replies

8. UNIX for Dummies Questions & Answers

awk command behaving differntly on 2 servers--urgent

Hi I am using awk command for string replacement. I have 2 servers. The command runs perfectly well on 1st server On the second server when i run the command on the same datset The command gets stuck while processing a large piece of record.. Does it have anything to with setting on the 2... (1 Reply)
Discussion started by: aixjadoo
1 Replies

9. Shell Programming and Scripting

Script behaving differently in Crontab..

Hi, I wrote a script to stop a process,truncate its log files and re-start the process... We are using Progress Software in Unix ( Sun Sparc) When ever I start this progress program , it should kick off a C pgm in the background.. The script work perfectly fine when I run it from command... (4 Replies)
Discussion started by: newtoxinu
4 Replies

10. UNIX for Advanced & Expert Users

Script behaving differently in Crontab..

I posted this in Shell scripting... maybe I'll try it in this forum.. ***************** I wrote a script to stop a process,truncate its log files and re-start the process... We are using Progress Software in Unix ( Sun Sparc) When ever I start this progress program , it should kick off a... (1 Reply)
Discussion started by: newtoxinu
1 Replies
Login or Register to Ask a Question