ich diese Beispieldatei haben:Erhalten Sie mehrere Spiele von Text in geschweiften Klammern
authoritative;
subnet x.x.x.x netmask x.x.x.x {
range x.x.x.x x.x.x.x;
deny unknown-clients;
default-lease-time 86400;
max-lease-time 86400;
option domain-name "bla";
option domain-name-servers x.x.x.x;
option broadcast-address x.x.x.x;
option subnet-mask x.x.x.x;
option routers x.x.x.x;
host host1 {
hardware ethernet 00:e1:4c:68:00:53;
fixed-address 1.1.1.1;
}
host host2 {
hardware ethernet 01:e2:4d:69:01:54;
fixed-address 2.2.2.2;
}
host host3 {
hardware ethernet 02:e3:4e:70:02:55;
fixed-address 3.3.3.3;
}
host host4 {
hardware ethernet 03:e4:4f:71:03:56;
fixed-address 4.4.4.4;
}
host host5 {
hardware ethernet 04:e5:5f:72:04:57;
fixed-address 5.5.5.5;
}
}
Jetzt versuche ich, die MAC-Adresse und IP-Adresse Teile aus dem Inneren der Host x Blöcke zu extrahieren. Wenn ich diese Dateistruktur verwende (die newLines enthält), passt sie überhaupt nicht zusammen ... darauf werde ich später eingehen. Aber jetzt habe ich Schwierigkeiten, alle Spiele zu bekommen. Das ist, was ich bisher habe: Link to MyRegex Wie Sie dort sehen können, enthalten $ 1 und $ 2 die letzten Mac/IP-Adresse Einträge. Aber wie bekomme ich Übereinstimmungen für alle Einträge in der Beispieldatei? Ich bin sicher, ich vermisse etwas Wesentliches ...
Vielen Dank!
Welche Sprache/Werkzeug? – Toto
Da ich den Mechanismus einfach verstehen möchte, verwende ich dieses Online-Tool: http://regexr.com/. Am Ende werde ich versuchen, das Ergebnis mit Bash-Skript-Tools wie grep/awk/sed zu kombinieren. Aber jetzt versuche ich zu verstehen, wie man die Matches nur mit Regex vorbereiten kann - wenn das möglich ist – user2549803
Danke, aber wie ich bereits erwähnt habe, möchte ich, dass dieses Muster nur in einem Host-Block gefunden wird – user2549803