HP3000-L Archives

September 2000, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Mark Bixby <[log in to unmask]>
Reply To:
Mark Bixby <[log in to unmask]>
Date:
Tue, 26 Sep 2000 14:55:32 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (89 lines)
[log in to unmask] wrote:
>
> hi all,
>         I have two file of similar structure and content, I want to compare both
> the file and pass the rows that are different from one of the file onto a third
> file.

If both input files are sorted on a common key, the POSIX join command's -v
option can do this for you, i.e.:

        join -v 1 file1 file2 >file3

- Mark B.

     join(1)               MPE/iX Shell and Utilities               join(1)
     ______________________________________________________________________

     NAME
     join -- join two sorted, textual relational databases

     SYNOPSIS
     join [-a n] [-e s] [-o list] [-t c] [-v n] [-1 n] [-2 n] file1 file2
     join [-a n] [-e s] [-j[n] m] [-o list] [-t c] file1 file2

     DESCRIPTION
     join joins two databases.  It assumes that both file1 and file2
     contain textual databases in which each input line is a record and
     that the input records are sorted in ascending order on a particular
     join key field (by default the first field in each file).  If you
     specify - in place of file1 or file2, join uses the standard input for
     that file.

     Conceptually, join computes the Cartesian product of records from both
     files.  By default, spaces or tabs separate input fields and join
     discards any leading or trailing white space.  (There can be no white-
     space delimited empty input fields.)  It then generates output for
     those combined records in which the join key field (the first field by
     default) matches in each file.  The default output for join is the
     common join key field, followed by all the other fields in file1, and
     then all the other fields in file2. The other fields from each file
     appear in the same order they appeared in the original file.  The
     default output field separator is a space character.

     Options
     join accepts the following options:

     -a n produces an output line for lines that do not match in addition
          to one for a pair of records that do match.  If you specify n as
          one of 1 or 2, join produces unpaired records from only that
          file.  If you specify both -a 1 and -a 2, it produces unpaired
          records from both files.

     -e string
          replaces empty fields (selected by -o) with string on output.

     -j[n] m
          uses field number m as the join key field.  By default, the join
          key field is the first field in each input line.  As with the -a
          option, if n is present, this option specifies the key field just
          for that file; otherwise, it specifies it for both files.

     -o list ...
          specifies the fields to be output.  You can specify each element
          in list as either n.m where n is a file number (1 or 2) and m is
          a field number, or as 0 (zero), which represents the join field.
          You can specify any number of output fields by separating them
          with blanks or commas.  The POSIX-compatible form (listed first
          in SYNOPSIS) requires that you specify multiple output fields as
          a single argument; therefore shell quoting may be necessary.
          join outputs the fields in the order you list them.

                                                                          1

     join(1)               MPE/iX Shell and Utilities               join(1)
     ______________________________________________________________________

     -t c sets the field separator to the character c. Each instance of c
          introduces a new field, making empty fields possible.

     -v n suppresses matching lines.  If you specify n as one of 1 or 2,
          join produces unpaired records from only that file.  If you
          specify both -v 1 and -v 2, it produces unpaired records from
          both files.  This does not suppress any lines produced using the
          -a option.

     -1 n uses the nth field of file1 as the join key field.

     -2 n uses the nth field of file2 as the join key field.

ATOM RSS1 RSS2