08-09-2011
Compare Two Files(Column By Column) In Perl or shell
Hi,
I am writing a comparator script, which comapre two txt files(column by column)
below are the precondition of this comparator
1)columns of file are not seperated
Ex.
file1.txt
8888812341181892
1243548895685687
8945896789897789
1111111111111111
file2.txt
9578956789567897
8945789789567894
5789567895678967
1111111111111111
where charactr 1-5 if field1
character 6-9 is field2 etc.
second file is also same structure. but the filed1 of file1 may differ from field1 of file2.
2) Field_Desc.csv
the position of fields is taken from third file (just call it Field_desc.csv)
from this file => we can take a field position and its length
Ex.
FIELD1|OFFSET|LENGTH
My question:
1) i am reading all files, but how to cut a specific column of a file(not line by line). I need entire column in a seperate variable.
Ex.
field1 of file1
88888
12435
89458
11111
field1 of file2
95789
89457
57895
11111
=> I am not getting above result.
2) now I will perform the diff command or check line1 of file1 is equal to line1 of file2. need result as below
Ex.
field1_of_file1 field1_of_file2 Result
88888 95789 "Error not equal value"
12435 89457 "Error not equal value"
89458 57895 "Error not equal value"
11111 11111 "Files has same value"
3) Script is executed as below
perl Script_compare.pl File1.txt File2.txt Filed_Desc.csv
and result must be writeen in another file "Result.log"
please help me. I was in second position "not able to cut the file in column basis.
thanks
vikash
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi, I need help to write a korn shell script to
1. Check and compare the first file contains single record from the /scp/inbox directory against the badpnt.dat file from the pnt/badfiles directory contains multiple records based on the fam_id column value start at position 38 to 47 from the... (7 Replies)
Discussion started by: hanie123
7 Replies
2. Shell Programming and Scripting
Hi
i want to compare files
a.txt
12345,23
34567,76
65456,10
13467,01
b.txt
12346,23
34567,76
23333,90
65456,10
13467,03
i want o/p in 3 files
common.txt
both have (2 Replies)
Discussion started by: aaysa123
2 Replies
3. Shell Programming and Scripting
Here is my situation. I need to compare two tab separated files (diff is not useful since there could be known difference between files).
I have found similar posts , but not fully matching.I was thinking of writing a shell script using cut and grep and while loop but after going thru posts it... (2 Replies)
Discussion started by: blackjack101
2 Replies
4. Shell Programming and Scripting
Hi,
I have nine files looking similar to file1 & file2 below.
File1:
1 ABCA1
1 ABCC8
1 ABR:N
1 ACACB
1 ACAP2
1 ACOT1
1 ACSBG
1 ACTR1
1 ACTRT
1 ADAMT
1 AEN:N
1 AKAP1File2:
1 A4GAL
1 ACTBL
1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies
5. Shell Programming and Scripting
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
Hi All I am just trying to compare 2 file using column information using following code
awk '
NR==FNR {A=$9; next}
{B=A; print $0,B""?B:" Not -In file" }
' OFS="\t" file1 file2if file1 matches with file2 then print $9 content in file 1 along with file2 $0 suppose if I keyed on only $1 in... (17 Replies)
Discussion started by: Akshay Hegde
17 Replies
7. Shell Programming and Scripting
Hi all,
I have two two-column tab-separated files with the following input:
inputA
dog A
dog B
cat A....
inputB
dog C
mouse A
output
dog
I need to compare the 1st column of each file and output those shared items.
What is the best unix solution for that? (5 Replies)
Discussion started by: owwow14
5 Replies
8. Shell Programming and Scripting
Input file :
5 20
500 2
20 41
41 0
23 1
Desired output :
5
2
20
0
1
By comparing column 1 and 2 in each line, I hope can print out the column with smallest number.
I did try the following code, but it don't look good :( (2 Replies)
Discussion started by: perl_beginner
2 Replies
9. Shell Programming and Scripting
Example:
I have files in below format
file 1:
zxc,133,joe@example.com
cst,222,xyz@example1.com
File 2 Contains:
hxd
hcd
jws
zxc
cst
File 1 has 50000 lines and file 2 has around 30000 lines :
Expected Output has to be :
hxd
hcd
jws (5 Replies)
Discussion started by: TestPractice
5 Replies
10. UNIX for Beginners Questions & Answers
Hello Team,
My source data (INput) is like below
EPIC1 router EPIC2 Targetdefinition
Exp1 Expres rtr1 Router
SQL SrcQual Exp1 Expres
rtr1 Router EPIC1 Targetdefinition
My output like
SQL SrcQual Exp1 Expres
Exp1 Expres rtr1 Router
rtr1 Router EPIC1 Targetdefinition... (5 Replies)
Discussion started by: sekhar.lsb
5 Replies
comm(1) User Commands comm(1)
NAME
comm - select or reject lines common to two files
SYNOPSIS
comm [-123] file1 file2
DESCRIPTION
The comm utility reads file1 and file2, which must be ordered in the current collating sequence, and produces three text columns as output:
lines only in file1; lines only in file2; and lines in both files.
If the input files were ordered according to the collating sequence of the current locale, the lines written will be in the collating
sequence of the original lines. If not, the results are unspecified.
OPTIONS
The following options are supported:
-1 Suppresses the output column of lines unique to file1.
-2 Suppresses the output column of lines unique to file2.
-3 Suppresses the output column of lines duplicated in file1 and file2.
OPERANDS
The following operands are supported:
file1 A path name of the first file to be compared. If file1 is -, the standard input is used.
file2 A path name of the second file to be compared. If file2 is -, the standard input is used.
USAGE
See largefile(5) for the description of the behavior of comm when encountering files greater than or equal to 2 Gbyte ( 2**31 bytes).
EXAMPLES
Example 1: Printing a list of utilities specified by files
If file1, file2, and file3 each contain a sorted list of utilities, the command
example% comm -23 file1 file2 | comm -23 - file3
prints a list of utilities in file1 not specified by either of the other files. The entry:
example% comm -12 file1 file2 | comm -12 - file3
prints a list of utilities specified by all three files. And the entry:
example% comm -12 file2 file3 | comm -23 -file1
prints a list of utilities specified by both file2 and file3, but not specified in file1.
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of comm: LANG, LC_ALL, LC_COLLATE,
LC_CTYPE, LC_MESSAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 All input files were successfully output as specified.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWesu |
+-----------------------------+-----------------------------+
|CSI |enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
cmp(1), diff(1), sort(1), uniq(1), attributes(5), environ(5), largefile(5), standards(5)
SunOS 5.10 3 Mar 2004 comm(1)