Date: Thu, 29 Oct 2009 23:49:22 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Martin McCormick <martin@dc.cis.okstate.edu> Cc: freebsd-questions@freebsd.org Subject: Re: Merging Related Information from 2 Tables Message-ID: <87ws2d27ml.fsf@kobe.laptop> In-Reply-To: <873a529mx6.fsf@kobe.laptop> (Giorgos Keramidas's message of "Thu, 29 Oct 2009 18:37:09 %2B0200") References: <200910291539.n9TFcuKB078966@dc.cis.okstate.edu> <873a529mx6.fsf@kobe.laptop>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 29 Oct 2009 18:37:09 +0200, Giorgos Keramidas <keramida@ceid.upatras.gr> wrote: > You should use a Perl or Python script, and a hash... > ... > Running this script should produce something like: > > : keramida@kobe:/tmp$ python martin.py < input-file > : {'kobe': [('A', '127.0.0.1'), ('TXT', '"This is a test"')], > : 'localhost': [('A', '127.0.0.1')]} > > When you have the hash map of hostname to record-list for each host, you > can select and print any combination of host<=>record from this hash. On Thu, 29 Oct 2009 13:44:12 -0500, Martin McCormick <martin@dc.cis.okstate.edu> wrote: > Perl and python-- I wasn't even thinking of that! Thank you. I have > installed python now on the FreeBSD system and will start learning it. > > A records look like: > > hydrogen.cis.osu. 43200 IN A 192.168.2.123 > > Text or TXT records look similar except that the data they > convey are ASCII text strings of various information that are > either read by people or maybe tell servers how to behave toward > that particular client. > > hydrogen.cis.osu. 5 IN TXT "cordell-north,009,192.168.2.123" Once you slurp all the A and TXT records in a hash-map or another data structure of your own with Python, you can iterate over the hash and print parts or all of it. For example, if you have the hash I printed in my previous reply, you can print all addresses and text records with a small bit of code: : keramida@kobe:/home/keramida$ cat hello.py : #!/usr/bin/env python : : hosts = {'kobe': [('A', '127.0.0.1'), : ('TXT', '"This is a test"')], : 'localhost': [('A', '127.0.0.1')]} : : for h in sorted(hosts): : addrs = [x[1] for x in hosts[h] if x[0] == 'A'] : txts = [x[1] for x in hosts[h] if x[0] == 'TXT'] : for a in addrs: : if len(txts) == 0: : txts = [""] : for t in txts: : print "%-20s %-30s %s" % (a, h, t) : keramida@kobe:/home/keramida$ python hello.py : 127.0.0.1 kobe "This is a test" : 127.0.0.1 localhost : keramida@kobe:/home/keramida$ Add or remove formatting as you see fit :-)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87ws2d27ml.fsf>