count and compare no of records in bash shell script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting count and compare no of records in bash shell script.
# 8  
Old 02-24-2010
hey watsup guys

i am new in the shell script world. so i need help fom you guys, i have written these two codes and they both give the same errors( expr : syntax error).

Code 1 :

#! /bin/sh
# count1 appends an increment to a file 200 times
# note that a file called numbers must be initialised to contain 0

count=0
while [ $count -lt 200 ] # loop 200 times
do
count=`expr $count + 1` # increment counter
n=`tail -1 numbers` # get last line from numbers file
expr $n + 1 >> numbers # add 1 to it and append it back
done

Code 2:

#! /bin/sh
# count2 also increments and appends a value to the numbers file
# but only when it can successfully create a new hard link to the numbers file

count=0
while [ $count -lt 200 ] # still loop 200 times
do
count=`expr $count + 1` # increment the loop counter
if ln numbers numbers.lock # try to enter the critical region
then # in this case, ln is similar to TSL
n=`tail -1 numbers` # get the last number to increment
expr $n + 1 >> numbers # increment it and append it to the file
rm numbers.lock # exit the critical region
fi # Note that if the ln was unsuccessful, we don't
# do busy waiting, but just continue looping
done

These syntax errors are killing me. i would apreciate if someone could help as soon as possible

Much love
# 9  
Old 02-25-2010
bash shell script

Hi

the error when i execute the script.


: integer expression expected[: 111

thanks.
# 10  
Old 02-25-2010
surubi,
I did try executing both shell scritpts on Solaris 10 server. I did not get any error. Both worked fine.
-Nithin.
# 11  
Old 02-25-2010
Hai barani75,

Check your cut command output in shell. Now also I checked my script that is working fine for your csv file content. I think your environment have some problems. Please check it...


Code:
#!/bin/sh
counter=0;
while read line; do
        if `echo ${line} | grep "^D" 1>/dev/null 2>&1`
        then
                counter=`expr $counter + 1`
        elif `echo ${line} | grep "^T" 1>/dev/null 2>&1`
        then
                Tval=`echo ${line} | cut -d "," -f 2`
        fi
done < csvfile

if [ $Tval -eq $counter ]
then
        echo "No of rows matched with T Value"
else
        echo "Not matched"

fi

# 12  
Old 02-25-2010
Hi surubi,

I just copied your two scripts and I ran it in my bash shell of linux environment.It worked correctly and added the two hundred extra lines into the file.I ran your script by giving the input file numbers with integers only.

For ex,the content of the numbers file as follows.

1
2

After I ran the script,it appended another two hundred lines into the file.

I think your input file may contain string.If it contains string,your scripts won't work.If your input file contains string,then add the following line after the count=0 line in your both scripts.

declare -i n

The above statement converts the character into integer which is required by the expr command.

I have one more doubt in your second script.Why you have created hard link for the file numbers?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

UNIX Script required for count the records in table

Hi Friends, I looking for the script for the count of the records in table. and then it's containg the zero records then should get abort. and should notify us through mail. Can you please help me out in this area i am lacking. (5 Replies)
Discussion started by: victory
5 Replies

2. Shell Programming and Scripting

Script to compare count of two csv files

Hi Guys, I need to write a script to compare the count of two csv files each having 5 columns. Everyday a csv file is recived. Now we need to compare the count of todays csv file with yesterday's csv file and if the total count of records is same in todays csv file and yesterday csv file out... (3 Replies)
Discussion started by: Vivekit82
3 Replies

3. Shell Programming and Scripting

Compare two files with different number of records and output only the Extra records from file1

Hi Freinds , I have 2 files . File 1 |nag|HYd|1|Che |esw|Gun|2|hyd |pra|bhe|3|hyd |omu|hei|4|bnsj |uer|oeri|5|uery File 2 |nag|HYd|1|Che |esw|Gun|2|hyd |uer|oi|3|uery output : (9 Replies)
Discussion started by: i150371485
9 Replies

4. Shell Programming and Scripting

Nawk script to compare records of a file based on a particular column.

Hi Gurus, I am struggling with nawk command where i am processing a file based on columns. Here is the sample data file. UM113570248|24-AUG-11|4|man1|RR211 Alert: Master Process failure |24-AUG-11 UM113570624|24-AUG-11|4|man1| Alert: Pattern 'E_DCLeDAOException' found |24-AUG-11... (7 Replies)
Discussion started by: usha rao
7 Replies

5. Shell Programming and Scripting

Script to count particular type of records

Hi, I have a huge file containing thousands of records which are of following pattern: TYPE1 { originNodeType : "IVR" originHostName : "AAIVR" originTransactionID : "01310559" originTimeStamp : "20110620192440+0530" hostName : "hhhh" voucher : '0'D rProfileID : "ZZZZ" Before {... (5 Replies)
Discussion started by: madhukar1anand
5 Replies

6. Shell Programming and Scripting

Shell script to count number of ~ from each line and compare with next line

Hi, I have created one shell script in which it will count number of "~" tilda charactors from each line of the file.But the problem is that i need to count each line count individually, that means. if line one contains 14 "~"s and line two contains 15 "~"s then it should give an error msg.each... (3 Replies)
Discussion started by: Ganesh Khandare
3 Replies

7. Shell Programming and Scripting

Shell Script to compare files, check current date and count

Hello - I have written the following basic shell script to count files, compare files and look for a particular strings in a file. Problem 1: How do I define more than 1 file location? #!/bin/bash #this is a test script FILES=$(ls /home/student/bin/dir1, home/student/bin/dir2)... (0 Replies)
Discussion started by: DallasT
0 Replies

8. UNIX for Dummies Questions & Answers

Bash script to extract spf records

Hello I am trying to generate a script to run on worldwide firewalls. I need the spf block for large sites like google, etc so I can essentially whitelist google sites for users. (Google here is just an example...) Right now I am just testing Bash oneliners to see how I can isolate the... (1 Reply)
Discussion started by: mbubb
1 Replies

9. UNIX for Dummies Questions & Answers

How to count the occurences of a specific word in a file in bash shell

Hello, I want to count the occurences of a specific word in a .txt file in bash shell. Can somebody help me pleaze?? Thanks!!! (2 Replies)
Discussion started by: mskart
2 Replies

10. Shell Programming and Scripting

Count No of Records in File without counting Header and Trailer Records

I have a flat file and need to count no of records in the file less the header and the trailer record. I would appreciate any and all asistance Thanks Hadi Lalani (2 Replies)
Discussion started by: guiguy
2 Replies
Login or Register to Ask a Question