Thread Dateiveränderung durch Perl-Skript (12 answers)
Opened by clyde at 2009-05-14 17:15

Dubu
 2009-05-21 11:32
#121811 #121811
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Etwas "unixoider" wird es, wenn die beiden IPs direkt auf der Kommandozeile übergeben werden statt sie interaktiv abzufragen. Aber da kommt es natürlich auf den Use Case an.
Ich persönlich finde die Methode mit dem sprintf() von Linuxer auch eher unübersichtlicher und fehlerträchtiger, als einfach die Variablen in die Regex einzusetzen, aber TIMTOWTDI.

So sähe also meine Lösung eher aus:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl -i.bak
use strict;
use warnings;

if (@ARGV < 3) {
    die "Benutzung: $0 <alteip> <neueip> <datei1> [<datei2> ...]\n";
}
my $ip = shift;
my $newip = shift;

while ( <> ) {
    # suche/ersetze fuer jede Zeile
    s{^BBGEN="\Q$ip\E"}{BBGEN="$newip"};
    print;
}


Edit: Anführungszeichen in Regex vergessen.
Last edited: 2009-05-21 12:04:08 +0200 (CEST)

View full thread Dateiveränderung durch Perl-Skript