[Corpora-List] Comparing files
Ken Beesley
Ken.Beesley at xrce.xerox.com
Sun Nov 16 13:50:13 UTC 2003
In Unix, there's a built-in 'comm' utility for
comparing two lists of (sorted) words:
NAME
comm - select or reject lines common to two files
SYNOPSIS
comm [-123] file1 file2
DESCRIPTION
The comm utility will read file1 and file2, which should be
ordered in the current collating sequence, and produce 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 Suppress the output column of lines unique to file1.
-2 Suppress the output column of lines unique to file2.
-3 Suppress the output column of lines duplicated in
file1 and file2.
So if your original files are 'one' and 'two', you can just do:
sort one | uniq > one.uniq
sort two | uniq > two.uniq
comm one.uniq one.uniq two.uniq > output
using the optional flags, as desired, to suppress one or more of
the columns of output.
Ken
> Subject: Re: [Corpora-List] Comparing files
> To: miles at inf.ed.ac.uk (Miles Osborne)
> Date: Sat, 15 Nov 2003 17:16:14 -0500 (EST)
> Cc: otto at lassen.mail.dk (Otto Lassen), tine.lassen at tdcadsl.dk (Tine Lassen),
CORPORA at HD.UIB.NO
> From: radev at umich.edu
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> X-checked-clean: by exiscan on rolf
> X-Scanner: de33e062bbda4db3e8275cce8f768c70 http://tjinfo.uib.no/virus.html
> X-UiB-SpamFlag: NO UIB: 0.7 hits, 7.0 required
> X-UiB-SpamReport: spamassassin found; * 0.7 -- From: does not include a real
name
>
> Here is a UNIX script:
>
> % sort one | uniq > one.uniq
> % sort two | uniq > two.uniq
> % cat one.uniq one.uniq two.uniq | sort | uniq -c | sort -nr > output
>
> Here is an example
>
> one:
> ==========
> cat
> dog
> cat
> mouse
>
> two:
> ==========
> cat
> rabbit
> elephant
> rabbit
>
> output:
> ==========
> 3 cat
> 2 mouse
> 2 dog
> 1 rabbit
> 1 elephant
>
>
> Words with a count of 3 appear in both "one" and "two".
> Words with a count of 2 appear in "one" only.
> Words with a count of 1 appear in "two" only.
>
> --
> Drago
>
>
> Miles Osborne wrote:
> >
> > that's far too slow -use a hash table instead.
> >
> > now, this wouldn't be homework, would it?
> >
> > Miles
> >
> > Quoting Otto Lassen <otto at lassen.mail.dk>:
> >
> > > Hi
> > > That could be done in any language:
> > > 1. sort then two lists
> > > 2. compare them word for word
> > > 3. output words which are not in both lists
> > > Regards
> > > Otto Lassen
> > >
> > > At 21:54 15-11-2003 +0100, you wrote:
> > > >Hi,
> > > >
> > > >I'm doing a project that involves comparing two very large word lists
> > >
> > > >(~40.000 and 70.000 words). What I need to find out, is which words are
> > > on
> > > >one list and not on the other (and/or vice versa).
> > > >Can anyone give me a hint as to how to do this? (I was thinking; maybe
> > > a
> > > >perl script?)
> > > >
> > > >Any help will be greatly appreciated.
> > > >Best,
> > > >Tine Lassen
> > >
> > >
> >
> >
>
>
> --
> Dragomir R. Radev radev at umich.edu
> Assistant Professor of Information, Electrical Engineering and
> Computer Science, and Linguistics, the University of Michigan, Ann Arbor
> Phone: 734-615-5225 Fax: 734-764-2475 http://www.si.umich.edu/~radev
>
**********************************************************************
Kenneth R. Beesley ken.beesley at xrce.xerox.com
Xerox Research Centre Europe Tel from France: 04 76 61 50 64
6, chemin de Maupertuis Tel from Abroad: +33 4 76 61 50 64
38240 MEYLAN Fax from France: 04 76 61 50 99
France Fax from Abroad: +33 4 76 61 50 99
XRCE page: http://www.xrce.xerox.com
Personal page: http://www.xrce.xerox.com/people/beesley/beesley.html
**********************************************************************
More information about the Corpora
mailing list