Comparing two lists
Chad Perrin
perrin at apotheon.com
Sat May 7 13:10:13 UTC 2011
On Sat, May 07, 2011 at 02:09:26AM +0200, Rolf Nielsen wrote:
>
> I have two text files, quite extensive ones. They have some lines in
> common and some lines are unique to one of the files. The lines that do
> exist in both files are not necessarily in the same location. Now I need
> to compare the files and output a list of lines that exist in both
> files. Is there a simple way to do this? diff? awk? sed? cmp? Or a
> 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 = File.open("foo.txt").readlines.map {|l| l.chomp}; \
bar = 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
--
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20110507/20321248/attachment.pgp
More information about the freebsd-questions
mailing list