To find and compare the data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting To find and compare the data
# 1  
Old 06-21-2013
To find and compare the data

hi ,

from the awk command i'm getting the output where the 2nd column of both are match in row wise,
if it present in that same column some where else, I cannot get the correct output.
awk 'FNR==NR {a[$1]=$5;next} $1 in a {if ($5==a[$1]) t=0; else {t=$5-a[$1]};print $0,t}' file.tsv file2.tsv

please check the thread https://www.unix.com/shell-programmin...ent-files.html

---------- Post updated at 07:50 PM ---------- Previous update was at 07:40 PM ----------

Code:
col1 col2 col3
11 15465 13.60
12 24656 11.00
13 245896 754.00

Code:
col1 col2 col3
11 245896 754.00
12 15465 13.60
13 24656 11.00

this will give the wrong output
# 2  
Old 06-21-2013
I recognize that for some people here, english is not the primary language. I do not think you explained this well.

1. show input file

2. show your command

3. show what you are getting

4. show what you want to get for output.
# 3  
Old 06-23-2013
Hi,

here i have given the input files and output files, and awk command
awk 'FNR==NR {a[$1]=$4;next} $1 in a {if ($4==a[$1]) t=0; else {t=$4-a[$1]};print $0,t}' file1.tsv file2.tsv

i have to find the COL1 number in file2 and get the difference of the matched number's COL3 Value that is i have to find the 14150524 in file2 and take a difference of 39.88 - 37.88 and the result i want is like 10527 14150524 Sa 39.88 -2




File 1
Code:
SR.no	COL1	COL2	COL3
10527	14150524	Sa	39.88
10528	12311440	Sa	0
10529	12441731	Sa	111.66
10530	15120599	Sa	69.97
10531	21635123	Sa	149.99
10532	9854892	Sa	27.53
10533	14526541	Sa	67.06
10534	10993779	Sa	99
10535	15684120	Sa	112.99
10536	6051457	Sa	249
10537	10983989	Sa	149.97
10538	8222030	Sa	59
10539	10910428	Sa	237.2
10540	8477371	Sa	126.44

File2
Code:
SR.no	COL1	COL2	COL3
10536	6051457	Sb	249
10537	10983989	Sb	149.97
10538	8222030	Sb	59
10530	15120599	Sb	69.97
10531	21635123	Sb	149.99
10532	8477371	Sb	126.44
10533	14526541	Sb	67.09
10534	10993779	Sb	99
10535	15684120	Sb	112.99
10527	14150524	Sb	37.88
10528	12311440	Sb	0
10529	12441731	Sb	111.66
10539	10910428	Sb	237.2
10540	9854892	Sb	27.54

Result
Code:
SR.no	COL1	COL2	COL3	COL4
10527	14150524	Sa	39.88	0
10528	12311440	Sa	0	0
10529	12441731	Sa	111.66	0
10530	15120599	Sa	69.97	0
10531	21635123	Sa	149.99	0
10532	9854892	Sa	27.53	-98.91
10533	14526541	Sa	67.06	-0.03
10534	10993779	Sa	99	0
10535	15684120	Sa	112.99	0
10536	6051457	Sa	249	0
10537	10983989	Sa	149.97	0
10538	8222030	Sa	59	0
10539	10910428	Sa	237.2	0
10540	8477371	Sa	126.44	98.9

# 4  
Old 06-23-2013
Quote:
result i want is like 10527 14150524 Sa 39.88 -2
Assuming you want result -2 you may want t=a[$1]-$4 (scanning file2 at first)

Code:
awk 'FNR==NR{a[$1]=$4;next}$1 in a{t=a[$1]-$4;print $0,(FNR==1)?"":t}' file2 file1

---------- Post updated at 12:08 PM ---------- Previous update was at 11:53 AM ----------

with a bit of formating
Code:
awk 'FNR==NR{a[$1]=$4;next}$1 in a{t=a[$1]-$4;printf"%-8s %8s %-4s %8s %8s\n",$1,$2,$3,$4,(FNR==1)?"COL4":t}' file2 file1

Code:
$ awk 'FNR==NR{a[$1]=$4;next}$1 in a{t=a[$1]-$4;printf"%-8s %8s %-4s %8s %8s\n",$1,$2,$3,$4,(FNR==1)?"COL4":t}' f2 f1
SR.no        COL1 COL2     COL3     COL4
10527    14150524 Sa      39.88       -2
10528    12311440 Sa          0        0
10529    12441731 Sa     111.66        0
10530    15120599 Sa      69.97        0
10531    21635123 Sa     149.99        0
10532     9854892 Sa      27.53    98.91
10533    14526541 Sa      67.06     0.03
10534    10993779 Sa         99        0
10535    15684120 Sa     112.99        0
10536     6051457 Sa        249        0
10537    10983989 Sa     149.97        0
10538     8222030 Sa         59        0
10539    10910428 Sa      237.2        0
10540     8477371 Sa     126.44    -98.9


Last edited by ctsgnb; 06-23-2013 at 07:16 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare data with while if else loop ?!

Good midday and hello to everyone! =) If I describe some things wrong please be aware, that english is not my native language!! :D I'm a bit stuck with a script I need to finish. Due to data protection I need to hide some paths but that should be no problem. My script connects to a db2... (1 Reply)
Discussion started by: dsondermann
1 Replies

2. Shell Programming and Scripting

Compare data with reference from other file

Gents, Please can you help with this. I have a big file (file2) which contends many records increment every 25 rows ( column 1 ). Then I have other file as reference (file1).. column 1 to 11. I want to compare that all values in file2 (column 2 to 12.) match with values in... (2 Replies)
Discussion started by: jiam912
2 Replies

3. UNIX for Dummies Questions & Answers

Compare data - Match first column and compare second

Hi guys, looking for some help with a way to compare data in two files but with some conditions. example, File 1 consists of site1,10.1.1.1 site2,20.2.2.2 site3,30.3.3.3 File 2 contains site1,l0.1.1.1 site2,50.1.1.1 site3,30.3.3.3 site4,40.1.1.1 I want to be able to match the... (1 Reply)
Discussion started by: mutley2202
1 Replies

4. Shell Programming and Scripting

Compare data in two files

Gents, Can you help please I have a data base with lot information (file2) and I have some data in (file1) to compare. Then the comparison should be done using the following keys: Example ( values from file1 ) key1 = columns from 20-34 substr($0,20,15) 66705.00 19793 key2 = columns... (5 Replies)
Discussion started by: jiam912
5 Replies

5. Shell Programming and Scripting

Compare 2 files and match column data and align data from 3 column

Hello experts, Please help me in achieving this in an easier way possible. I have 2 csv files with following data: File1 08/23/2012 12:35:47,JOB_5330 08/23/2012 12:35:47,JOB_5330 08/23/2012 12:36:09,JOB_5340 08/23/2012 12:36:14,JOB_5340 08/23/2012 12:36:22,JOB_5350 08/23/2012... (5 Replies)
Discussion started by: asnandhakumar
5 Replies

6. Shell Programming and Scripting

Get data from 3 differrnt oracle DB & then compare data

Hi All, I have a requirement to write a shell script for the following... we have 3 different database.... lets say A, B, C From these 3 DBs, i need to get data.. all have 3 different table...a,b, c A.a => Emp_code, count(*) B.b => emp_code, count(*) C.c => emp_code, copunt(*) Once get this... (4 Replies)
Discussion started by: Amit.Sagpariya
4 Replies

7. Shell Programming and Scripting

[urgent need help]compare data

hi all, very need help urgently :( i have a problem compare 2 files from solaris, the 2 files its shown below: data1.log : 6512345678 6512345677 20070131 073824 420 6511111111 6522222222 20070131 103747 87 6522222222 6233333333 ... (2 Replies)
Discussion started by: bucci
2 Replies

8. UNIX for Dummies Questions & Answers

Compare Data in the same file

Dear Unix-Gurus, I'm trying to write a script to compare the data in a log file. Here's how my logfile will look like: 'List All A0 Data in Destination Server' A0567 A0678 A0789 List A0 Files in Source Server A0567 A0678 A0789 So if the file match in Source Server match Destination... (1 Reply)
Discussion started by: lweegp
1 Replies

9. Shell Programming and Scripting

Compare data files

I would like to compare a data file (before and after a process has run) to identify if there are any differences. Can anyone help !! (1 Reply)
Discussion started by: ithomp
1 Replies

10. UNIX for Dummies Questions & Answers

compare data

Hi, my problem is, I have to files, one is a log file of an actual execution, the other file is a pattern file. The entries "abcd,,!!11.22!!,3asdf" and "abcd,,!!xx.xx!!,3asdf" should be identified as equal. At the position of the x in the pattern file, the log file must have... (3 Replies)
Discussion started by: bensky
3 Replies
Login or Register to Ask a Question