Unix Shell Scripting : Comparision of two files

 
Thread Tools Search this Thread
Special Forums UNIX and Linux Applications Unix Shell Scripting : Comparision of two files
# 8  
Old 09-07-2012
Question

Hi

For the same example.
What should we do if we need to count and print all the contents of File1.txt which do not fall in the range of File2.cfg?

Thanks in Advance,
CFA Smilie

---------- Post updated at 06:39 AM ---------- Previous update was at 06:33 AM ----------

Hi

For the same example.

What should we do if need to get the count and print the content of File1.txt which do not fall in the range of File2.cfg.

Please Help !!! :S

Thanks in Advance
CFASmilie
# 9  
Old 09-07-2012
Code:
awk 'FNR==NR{range[$1,$2]=$3;next}
{found="N";totlines=FNR
for(i in range)
{
 split(i,r,SUBSEP)
 if($1>=r[1] && $1<=r[2])
 {
  found="Y"
  count++
  break
 }
}
}found=="N"
END{print "Not Found (Total) : " (totlines-count)}' file2 file1

# 10  
Old 09-07-2012
Question

Hi Elixir,

Thanks a lot for your reply.Smilie

We tried this but the output is incorrect.
Also we need both the matching content and the non matching content to be displayed together.

For Example :

File1.txt

65005
65007
65006
27117
68700
68399
27382
27481
27382

File2.cfg

65005 65008 A
68399 68399 A
68700 68700 A
22980 22999 B
27109 27125 C


Like here 27382 and 27481 of File1.txt does not fall anywhere in the range of File2.cfg. Then it should display Output as :

Output File:

A 5
B 0
C 1
Unmatched 3

Thanks in Advance
CFASmilie
# 11  
Old 09-07-2012
Code:
awk 'FNR==NR{range[$1,$2]=$3;next}
{totlines=FNR
for(i in range)
{
 c[range[i]]+=0
 split(i,r,SUBSEP)
 if($1>=r[1] && $1<=r[2])
  c[range[i]]++
}}
END{
for(i in c){print i,c[i]|"sort";totfound+=c[i]}
close("sort")
print "Unmatched " (totlines-totfound)}' File2.cfg File1.txt


Last edited by elixir_sinari; 09-07-2012 at 09:51 AM..
# 12  
Old 09-10-2012
Question

Hi Elixir,

Thanks a lot for your reply.
This one works fine.

The only problem being our cfg file consist of some descriptive headers before each range specified. So while running the code we are also getting that in the count. Thus in output for all the descriptive header it is giving us the total count.

Example:

File2.cfg :

#Start End session
#----- ----- -------
65005 65008 A
68399 68399 A
68700 68700 A
22980 22999 B
This is for your information
27109 27125 C

File1.txt

65005
65007
65006
27117
68700
68399
27382
27481
27382

Output File Now:
7
----- 0
A 5
B 0
C 1
sessions 7
for 7
Unmatched -20

Output File Needed
A 5
B 0
C 1
Unmatched 1

Please help !!!

Thanks and Regards,
CFA
# 13  
Old 09-10-2012
Assuming your "data" lines in File2.cfg start with a number, change
Code:
awk 'FNR==NR{range[$1,$2]=$3;next}

to
Code:
awk 'FNR==NR{if(/^[0-9]/) range[$1,$2]=$3;next}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Export Oracle multiple tables to multiple csv files using UNIX shell scripting

Hello All, just wanted to export multiple tables from oracle sql using unix shell script to csv file and the below code is exporting only the first table. Can you please suggest why? or any better idea? export FILE="/abc/autom/file/geo_JOB.csv" Export= `sqlplus -s dev01/password@dEV3... (16 Replies)
Discussion started by: Hope
16 Replies

2. Homework & Coursework Questions

UNIX shell scripting programming in files

Create 2 files in unix in 2 different directories, compare them and fetch common words between these 2 files. Print them on the screen and also redirect the output to your home directory in the below format: file 1 | file 2 line no: word 1 | line no: word 1 line no: word 2 | line no: word 2 line... (11 Replies)
Discussion started by: mounica bijjala
11 Replies

3. UNIX for Beginners Questions & Answers

UNIX Shell Scripting

Describe in short the word completion feature of the tcsh Completion works anywhere in the command line, not at just the end, for both commands and filenames. Type part of a word and hit the Tab key, and the shell replaces the incomplete word with the complete one in the input buffer. The... (1 Reply)
Discussion started by: Elena Lauren
1 Replies

4. Shell Programming and Scripting

Comparing Select Columns from two CSV files in UNIX and create a third file based on comparision

Hi , I want to compare first 3 columns of File A and File B and create a new file File C which will have all rows from File B and will include rows that are present in File A and not in File B based on First 3 column comparison. Thanks in advance for your help. File A A,B,C,45,46... (2 Replies)
Discussion started by: ady_koolz
2 Replies

5. UNIX for Dummies Questions & Answers

Unix Shell Scripting( Calling from Unix to PLSQL)

Hello Experts, I have the following questions to be discussed here at this esteemed discussion forum. I have two Excel sheets which contain Unix Commands llike creating directory the structure/ftp/Copy/Zip etc to basically create an environment. I need help in understanding some of... (1 Reply)
Discussion started by: faizsaadq
1 Replies

6. Shell Programming and Scripting

Unix shell scripting

Hi All, I have one file called date1.txt and it contains dates like 130112 140112 150112 160112 170112 180112 190112 201012 so i need a script to read this file line by line and find out the day of each date and assign this value in one variable. And validate Weekday="Mon" then... (4 Replies)
Discussion started by: vichuelaa
4 Replies

7. Shell Programming and Scripting

Comparision of two huge unix files - Reconcilation

Hi, I have two huge file; each one has approximately 150000 lines. I need to compare both of them and store the unmatched lines into a different file. I have searched for everything in google but did not get solution. Files are: File1 NRALBAMINDB20003726 NRALBAMINDB20003727... (16 Replies)
Discussion started by: Suman Singh
16 Replies

8. Shell Programming and Scripting

String comparision in shell scripting

Hi Guys, I am new to scripting I have written a code to compare strings,but I am getting some Exception Code snippet: MODE="D" if ]; then . $file1 fi Error: ./BatchJobs.sh: [[: execute permission denied I have given all Execute permissions to the script(chmod 755... (2 Replies)
Discussion started by: Anji
2 Replies

9. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

10. UNIX for Dummies Questions & Answers

Unix shell scripting

I need to write a script which analyses an invoice file, counting the amount of pages in the file to be printed per account number and per invoice. The account numbers are stored in another file which has instructions on what do with ach customers invoice as per their account number. please... (6 Replies)
Discussion started by: la_burton
6 Replies
Login or Register to Ask a Question