On Thu, Sep 05, 2002 at 08:18:52PM +0200, Jens Puruckherr wrote:
Hallo,
wie mache ich aus einer dhcp.conf eine csv-Datei, in der alle
host xxxx { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.200.71; }
Einträge zeileweise abgebildet werden:
xxxx,00:00:00:00:00:00,192.168.200.71
Ich kann bissel Perl, php, und bash. auch awk habe ich schon mal gesehen - nur es gebricht mir am Ansatz :-( Danke!
Perl ..... danke für den Wink:
Folgende Lösung geht davon aus, dass jeder Host nur eine Ethernetadresse und nur eine IP-Adresse hat.
++++ dhcp2csv.py: #!/usr/bin/env python
import sys import re
fd=open(sys.argv[1]) while 1: host=None line=fd.readline() if not line: break match=re.match(r'.*host ([a-zA-Z0-9.]*)', line) if match: host=match.group(1) ethernet=None address=None while 1: line=fd.readline() if not line: break match=re.match(r'.*ethernet *([0-9:]*)', line) if match: ethernet=match.group(1) else: match=re.match(r'.*fixed-address *([0-9.]*)', line) if match: address=match.group(1) if address and ethernet: break if host: print("%s,%s,%s" % (host, ethernet, address))
+++ dhcp.txt: host xxxx { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.200.71; }
host xxxx2 { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.200.71; }
++++ Ergebnis: ==guettli@sonne:~/dhcp-csv-lug-dd$ python dhcp2csv.py dhcp.txt xxxx,00:00:00:00:00:00,192.168.200.71 xxxx2,00:00:00:00:00:00,192.168.200.71