Date: Sat, 7 May 2011 06:56:45 -0600 From: Chad Perrin <perrin@apotheon.com> To: FreeBSD <freebsd-questions@freebsd.org> Subject: Re: Comparing two lists Message-ID: <20110507125645.GA46576@guilt.hydra> In-Reply-To: <4DC48DB6.8030907@lazlarlyricon.com> References: <4DC48DB6.8030907@lazlarlyricon.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--yrj/dFKFPuw6o+aM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 07, 2011 at 02:09:26AM +0200, Rolf Nielsen wrote: >=20 > I have two text files, quite extensive ones. They have some lines in=20 > common and some lines are unique to one of the files. The lines that do= =20 > exist in both files are not necessarily in the same location. Now I need= =20 > to compare the files and output a list of lines that exist in both=20 > files. Is there a simple way to do this? diff? awk? sed? cmp? Or a=20 > combination of two or more of them? Disclaimer: This should probably be done with Unix command line utilities, and most likely by way of comm, as others explain here. On the other hand, the others explaining that have done an admirable job of giving you some pretty comprehensive advice on that front before I got here, so I'll give you an alternative approach that is probably *not* how you should do it. Alternative Approach: You could always use a programming language reasonably well-suited to admin scripting. The following is a one-liner in Ruby. ruby -e 'foo =3D File.open("foo.txt").readlines.map {|l| l.chomp}; \ bar =3D File.open("bar.txt").readlines.map {|l| l.chomp }; \ foo.each {|num| puts num if bar.include? num }' Okay, so I'm kinda stretching the definition of "one-liner" if I'm using semicolons and escaping newlines. If you really want to cram it all into one line of code, you could do something like replace the semicolons (and newline escapes) with the "and" keyword in each case. http://pastebin.com/nPR42760 --=20 Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ] --yrj/dFKFPuw6o+aM Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk3FQY0ACgkQ9mn/Pj01uKW4RwCg79+pYycRhCaURcDCa0u9epJ/ mFUAoJfqHPyJ/B8SiwuLBs3SzADxe5nE =rNzZ -----END PGP SIGNATURE----- --yrj/dFKFPuw6o+aM--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110507125645.GA46576>