Moin Moin,
ich kenne und nutze gerne den Perl-Einzeiler
perl -pie "s/OLDTEXT/NEWTEXT/mg" dateiname.txt
Nun habe ich Konfigurationszeilen von pi-hole für statische IP-Adreßzuweisungen und feste Namen, im Schema:
dhcp-host=28:6C:07:F9:07:77,192.168.1.148,flur-vacuum-eg
dhcp-host=30:CD:A7:14:0D:1D,192.168.1.100,samsung-mfp
...
Ich möchte nun zwei pi-holes einsetzen - der erste übernimmt den DHCP-Scope 192.168.1.30-90 und der zweite den DHCP-Scope 192.168.1.130-190. Beide sollen natürlich die gleichen Namen aber in verschiedenen Adreßbereichen vergeben. Daher muß ich die Konfigurationsdatei vom 1. pi-hole auf den 2. pi-hole pushen und modifizieren...
Mein Ansatz war:
perl -pie "s/192\.168\.1\.(\d+)/192.168.1.$1+100/gm" test.conf
Jedoch wird das Matching auf $1 nicht ersetzt und ausgerechnet, sondern bleibt leer und eine Berechnung findet nicht statt:
dhcp-host=28:6C:07:F9:07:77,192.168.1.+100,flur-vacuum-eg
dhcp-host=30:CD:A7:14:0D:1D,192.168.1.+100,samsung-mfp
Kann ich das mit Perl in einem Einzeiler realisieren?
Danke für Denkanstösse...
Ciao, -MN
https://stackoverflow.com/questions/25675850/arithmetic-calculation-in-perl-substitute-pattern-matching (https://stackoverflow.com/questions/25675850/arithmetic-calculation-in-perl-substitute-pattern-matching)
Der $1 wird als Variable von der Shell aufgelöst, ich denke Du musst entweder \$1 oder '...$1...' nehmen.
Gruß Otto