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

Linuxer
 2009-05-14 20:14
#121606 #121606
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Gut, jetzt wissen wir also, wie die Zeile aussehen soll, in der ersetzt werden soll.

Wonach soll nun gesucht werden?
Sollen alle IPs in den Zeilen, die dem beschriebenen Format entsprechen, ersetzt werden?
Soll nach einer bestimmten IP gesucht werden nun nur diese ersetzt werden?

Je genauer Du Dich ausdrückst, desto einfacher machst Du es den Leuten, die Dir helfen sollen.

Ich rate mal ins Blaue und schlage folgendes (ungetestet) vor:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/perl -i.bak
use strict;
use warnings;

# diese Skript legt von angegebenen Datei(en) jeweils eine Kopie an
# (mit Erweiterung .bak; siehe perldoc perlrun; -i.bak)

# definiere die Strings, nach denen wir suchen
# und womit wir ersetzen wollen
# um die IP vom Schema der entsprechenden Zeile zu trennen, nutzen
# wir hier sprintf(); (siehe: perldoc -f sprintf; ) ;ansonsten:
# my $gesucht = 'IP="144.144.144.144"';
# my $ersetze = 'IP="222.222.222.222"';
my $gesucht = sprintf( 'IP="%s"', '144.144.144.144' );  # aendere IP, nach der gesucht wird 
my $ersetze = sprintf( 'IP="%s"', '222.222.222.222' );  # aendere IP, mit der ersetzt wird

# Lese zeilenweise aus Datei(en)
while ( <> ) {

        # suche/ersetze fuer jede Zeile
        s{^\Q$gesucht\E}{$ersetze};

        # gebe die Zeile wieder aus
        print;
}


__END__


Das Skript in eine Datei packen.

Skriptaufruf: skript.pl textdatei1 textdatei2

Ergebnis:
textdatei1 und textdatei2 enthalten nach dem Aufruf des Skriptes die geänderten Daten.
textdatei1.bak und textdatei2.bak enthalten jeweils die gesicherte Originalversion.


edit: minor changes
edit2: Skriptaufruf um Ergebnis erweitert.
Last edited: 2009-05-18 10:43:42 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Dateiveränderung durch Perl-Skript