#!/usr/bin/env sh
# @(#) s2 Demonstrate perl line reading, comparison.
set -o nounset
echo
debug=":"
debug="echo"
## Use local command version for the commands in this demonstration.
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>& 1 && version bash perl
echo
echo " Data files data1 data2:"
cat data1
echo
cat data2
echo
echo " perl script output, filtered:"
./p1 data1 data2 |
cut -d"|" -f1
exit 0
which calls a perl script:
Code:
#!/usr/bin/perl
# @(#) p1 Demonstrate display of line-by-line differences.
use warnings;
use strict;
my ($debug);
$debug = 1;
$debug = 0;
my ( $f1, $f2, $file1, $file2, $line1, $line2, $EOF1, $EOF2 );
my ($lines) = 0;
$EOF1 = $EOF2 = 0;
$file1 = shift || die " usage: $0 file_1 file2\n";
$file2 = shift || die " usage: $0 file_1 file2\n";
open( $f1, "<", $file1 ) || die " Cannot open file $f1\n";
open( $f2, "<", $file2 ) || die " Cannot open file $f2\n";
while (1) {
if ( not( $line1 = <$f1> ) ) {
$EOF1 = 1;
}
if ( not( $line2 = <$f2> ) ) {
$EOF2 = 1;
}
if ( $EOF1 + $EOF2 != 0 ) {
print STDERR " Checking EOF on both files.\n" if $debug;
if ( $EOF1 == 0 ) {
print STDERR " Note - file $file1 has extra lines, stopping.\n";
}
if ( $EOF2 == 0 ) {
print STDERR " Note - file $file2 has extra lines, stopping.\n";
}
# In any case, this is our last read
last;
}
$lines++;
if ( index( $line1, $line2 ) != 0 ) {
print $line2;
}
}
print STDERR " ( Complete pairs of lines read: $lines )\n";
exit(0);
Producing from your data on files data1 and data2:
Code:
% ./s2
(Versions displayed with local utility "version")
GNU bash 2.05b.0
perl 5.8.4
Data files data1 data2:
1111 | universe
2222 |good
3333 |good
4444 |good
1111 | universe
3333 |universe
2222 |good
4444 |good
perl script output, filtered:
( Complete pairs of lines read: 4 )
3333
2222
I am very new to Unix. What are the similiarities and differences between ScoUnix and AIX5 if any? Where might i find the information? Which is better? (1 Reply)
Kindly help on follows.
I have 2 files. One file contains only one column of mobile numbers. And total records in a file 12 million. Second file contains 2 columns mobile numbers and balance. and total records 30 million. I want to find out balance of each data in file 1 corresponding to file 2.... (2 Replies)
Hi,
I have a problem with comparison of two files
file1
20100101
20090101
20080101
20071001
20121229
file2
19990112 12 456 7
20011131 19
20100101 2 567 1 987
17890709 123 555
and, sh script needs to compare of these two files and give out to me result:
20100101 2 567 1 987
it... (5 Replies)
Hello,
I have 2 files and I want them to be compared in a specific fashion
file1:
A_1200_1250
A_1251_1300
B_1301_1350
B_1351_1400
B_1401_1450
C_1451_1500 and so on...
file2:
1210 1305 1260 1295
1400 1500 1450 1495
Now The script should look for "1200" from A_1200_1250 of... (8 Replies)
Hi all
I have two files which I have to compare that whetehr there is soemthing common or not
body, div, table, thead, tbody, tfoot, tr, th, td, p { font-family: "Liberation Sans"; font-size: x-small; }
body, div, table, thead, tbody, tfoot,... (2 Replies)
Hi all,
I want to compare two files with same number of rows and columns with records in same order.
Just want to highlight the differences in the column values if any.
file A
1,kolkata,19,ab
2,delhi,89,cd
3,bangalore,56,ef
file2:
1,kolkata,21,ab
2,mumbai,89,gh
3,bangalore,11,kl... (9 Replies)
Hi All ,
As I am new to unix scripting ,I need a help regarding unix scripting .I have two .txt files .One is source file and another is target file.I need a script through which I can compare those two files.I need a automated comparison report in a directory after comparing between source &... (2 Replies)
Hi All ,
I am aware of unix command ,but not comforable in putting together in script level.I came to situation where I need to compare between two .txt files fieldwise and need a mismatch report. As I am new to unix script arena ,if anyone can help in the below scenario that will be really... (9 Replies)
I have two files which has component name and version number separated by a space
cat file1
com.acc.invm:FNS_PROD 94.0.5
com.acc.invm:FNS_TEST_DCCC_Mangment 94.1.6
com.acc.invm:FNS_APIPlat_BDMap 100.0.9
com.acc.invm:SendEmail 29.6.113
com.acc.invm:SendSms 12.23.65
cat file2 ... (8 Replies)
I have the requirement
I have two files
cat fileA
something
anythg
nothing
everythg
cat fileB
everythg
anythg
Now i shld use fileB and compare every line at fileA and get the output as
something
nothing (3 Replies)
Discussion started by: Priya Amaresh
3 Replies
LEARN ABOUT V7
diff
DIFF(1) General Commands Manual DIFF(1)NAME
diff - differential file comparator
SYNOPSIS
diff [ -efbh ] file1 file2
DESCRIPTION
Diff tells what lines must be changed in two files to bring them into agreement. If file1 (file2) is `-', the standard input is used. If
file1 (file2) is a directory, then a file in that directory whose file-name is the same as the file-name of file2 (file1) is used. The
normal output contains lines of these forms:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
These lines resemble ed commands to convert file1 into file2. The numbers after the letters pertain to file2. In fact, by exchanging `a'
for `d' and reading backward one may ascertain equally how to convert file2 into file1. As in ed, identical pairs where n1 = n2 or n3 = n4
are abbreviated as a single number.
Following each of these lines come all the lines that are affected in the first file flagged by `<', then all the lines that are affected
in the second file flagged by `>'.
The -b option causes trailing blanks (spaces and tabs) to be ignored and other strings of blanks to compare equal.
The -e option produces a script of a, c and d commands for the editor ed, which will recreate file2 from file1. The -f option produces a
similar script, not useful with ed, in the opposite order. In connection with -e, the following shell program may help maintain multiple
versions of a file. Only an ancestral file ($1) and a chain of version-to-version ed scripts ($2,$3,...) made by diff need be on hand. A
`latest version' appears on the standard output.
(shift; cat $*; echo '1,$p') | ed - $1
Except in rare circumstances, diff finds a smallest sufficient set of file differences.
Option -h does a fast, half-hearted job. It works only when changed stretches are short and well separated, but does work on files of
unlimited length. Options -e and -f are unavailable with -h.
FILES
/tmp/d?????
/usr/lib/diffh for -h
SEE ALSO cmp(1), comm(1), ed(1)DIAGNOSTICS
Exit status is 0 for no differences, 1 for some, 2 for trouble.
BUGS
Editing scripts produced under the -e or -f option are naive about creating lines consisting of a single `.'.
DIFF(1)