Sponsored Content
Top Forums Shell Programming and Scripting Comparing two files with numbers and taking difference in third file Post 302867057 by Akshay Hegde on Wednesday 23rd of October 2013 10:39:16 AM
Old 10-23-2013
Quote:
Originally Posted by dev.devil.1983
Thanks for the reply Akshay, but following are the issue that i am facing

1) The first being the syntactical error probably

Code:
$ awk 'FNR==NR{A[$2 FS $3]=$4 FS $5;next}($1=="G73" && $2 FS $3 in A){split(A[$2 FS $3],m);$4-=m[1];$5-=m[2]}1' ABC.txt XYZ.txt >result.txt
awk: syntax error near line 1
awk: bailing out near line 1

2) It seems you are assuming the columns and rows to be of fixed length as well as value, which infact keeps on changing
eg : column'G73' is not fixed, it can change in the next instance ..

Thanks again for your expert help ! Smilie
Try this then

Code:
$ awk 'FNR==NR{A[$1 FS $2 FS $3]=$4 FS $5;next}(!/^[ \t]+/ && $1 FS $2 FS $3 in A){split(A[$2 FS $3],m);$4-=m[1];$5-=m[2]}1'  file1 file2

I think you are working on Solaris and you are using standard awk.

If so, you need to use /usr/xpg4/bin/awk instead, which is POSIX awk (or nawk if that is not available)
This User Gave Thanks to Akshay Hegde For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

comparing numbers in a file

Hello, I'm searching for a quick method to read numeric values from a file or a defined variable and identifying the largest number. For instance if the following numbers are in a file or defined to a variable: 09192007 09202007 09182007 09172007 09162007 What "short" method could be used to... (7 Replies)
Discussion started by: dusk2dawn
7 Replies

2. UNIX for Dummies Questions & Answers

Taking date difference

Hi, There is requirement in our project where in we have to calculate the elpased time of the process which are running and then if the elapsed time is greater than specific time we have to send a mail. In order to calculate the elapsed time we ahve use "ps -ef" command.The time displayed in... (6 Replies)
Discussion started by: Amey Joshi
6 Replies

3. UNIX for Dummies Questions & Answers

calculate the difference between numbers in lines of file

Hi everyone, i have files containing lines of number: 109 107 67 62 .. .. i want to calculate the difference between numbers in lines 1 and 2, 3 and 4, 5 and 6 and so on. would someone help me please?. Thanks (12 Replies)
Discussion started by: ahidayat
12 Replies

4. Shell Programming and Scripting

Comparing Columns and printing the difference from a particular file

Gurus, I have one file which is having multiple columns and also this file is not always contain the exact columns; sometimes it contains 5 columns or 12 columns. Now, I need to find the difference from that particular file. Here is the sample file: param1 | 10 | 20 | 30 | param2 | 10 |... (6 Replies)
Discussion started by: buzzusa
6 Replies

5. UNIX for Dummies Questions & Answers

Taking a average of a column of numbers

Hey all, I am relatively poor at programming and unfortunately don't have time to read about programming at this current moment. I wanted to be able to run a simple command to read a column of numbers in a file and give me the average of those numbers. In addition if I could specify the... (2 Replies)
Discussion started by: Leonidsg
2 Replies

6. Shell Programming and Scripting

Comparing text in 2 files and output difference in another file.

I have 2 files of almost same text apart from 2,3 ending lines. Now I want to get that difference in another file. e.g file1.txt is Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_livecd-lv_root 18G 2.4G 15G 14% / tmpfs 504M ... (12 Replies)
Discussion started by: kashif.live
12 Replies

7. Shell Programming and Scripting

Comparing 2 difference csv files

Hello, I have about 10 csv files which range from csv1 - csv10. Each csv file has same type/set of tabs and we have around 5-6 tabs for each of the csv file which have slightly different content(data). A sample of CSV1 is shown below: Joins: Data related to Joins, it can be any number of... (2 Replies)
Discussion started by: bobby1015
2 Replies

8. Shell Programming and Scripting

Comparing 2 CSV files and sending the difference to a new csv file

(say) I have 2 csv files - file1.csv & file2.csv as mentioned below: file1.csv ID,version,cost 1000,1,30 2000,2,40 3000,3,50 4000,4,60 file2.csv ID,version,cost 1000,1,30 2000,2,45 3000,4,55 6000,5,70 ... (1 Reply)
Discussion started by: Naresh101
1 Replies

9. Shell Programming and Scripting

Perl for comparing numbers from previous lines in a file?

Hi everyone I have a question for you, as I am trying to learn more about Perl and work with some weather data. I have an ascii file (shown below) that has 10 lines with different columns. What I would like is have Perl find an "anomalous" value by comparing a field with the values from the last... (2 Replies)
Discussion started by: lucshi09
2 Replies

10. UNIX for Beginners Questions & Answers

Comparing two files and list the difference with common first line content of both files

I have two file as given below which shows the ACL permissions of each file. I need to compare the source file with target file and list down the difference as specified below in required output. Can someone help me on this ? Source File ************* # file: /local/test_1 # owner: own #... (4 Replies)
Discussion started by: sarathy_a35
4 Replies
cmp(1)								   User Commands							    cmp(1)

NAME
cmp - compare two files SYNOPSIS
cmp [-l] [-s] file1 file2 [skip1] [skip2] DESCRIPTION
The cmp utility compares two files. cmp will write no output if the files are the same. Under default options, if they differ, it writes to standard output the byte and line numbers at which the first difference occurred. Bytes and lines are numbered beginning with 1. If one file is an initial subsequence of the other, that fact is noted. skip1 and skip2 are initial byte offsets into file1 and file2 respec- tively, and may be either octal or decimal; a leading 0 denotes octal. OPTIONS
The following options are supported: -l Write the byte number (decimal) and the differing bytes (octal) for each difference. -s Write nothing for differing files; return exit statuses only. OPERANDS
The following operands are supported: file1 A path name of the first file to be compared. If file1 is -, the standard input will be used. file2 A path name of the second file to be compared. If file2 is -, the standard input will be used. If both file1 and file2 refer to standard input or refer to the same FIFO special, block special or character special file, an error results. USAGE
See largefile(5) for the description of the behavior of cmp when encountering files greater than or equal to 2 Gbyte (2**31 bytes). EXAMPLES
Example 1: Comparing files byte for byte The following example: example% cmp file1 file2 0 1024 does a byte for byte comparison of file1 and file2. It skips the first 1024 bytes in file2 before starting the comparison. ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of cmp: LANG, LC_ALL, LC_CTYPE, LC_MES- SAGES, and NLSPATH. EXIT STATUS
The following error values are returned: 0 The files are identical. 1 The files are different; this includes the case where one file is identical to the first part of the other. >1 An error occurred. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
comm(1), diff(1), attributes(5), environ(5), largefile(5), standards(5) SunOS 5.10 1 Feb 1995 cmp(1)
All times are GMT -4. The time now is 11:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy