Leser: 1
5 Einträge, 1 Seite |
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
29
30
31
32
33
34
35
36
#!/usr/bin/perl -w
# Dateiname ermitteln
$dateiname = $ARGV[0]; # der Skriptname steht in $0
@zeilen = ();
# Hashtabelle erstellen und umkehren
%my_addresses_hash = (
"armin.mueller" => "amueller",
"thorsten.mustermann" => "tmustermann",
"klaus.meier" => "kmeier",
);
%reverse_my_addresses_hash = reverse %my_addresses_hash;
@reverse_my_addresses_array = %reverse_my_addresses_hash;
#Die zu suchenden/ersetzenden Werte werden getrennt
@search = keys %reverse_my_addresses_hash;
@replace = values %reverse_my_addresses_hash;
# Datei lesen
open (DATA, "$dateiname") || die "konnte die Datei nicht oeffnen\n";
#Solange noch etwas in der Datei steht, fuehre sed-Aktion aus
while (<DATA>)
{
s/$search/$replace/g;
##Die geaenderten Dateien werden in einem neuen Array gespeichert.
push (@content, $_);
}
#Die Datei wird nach der Bearbeitung geschlossen.
close (DATA);
#Die Datei wird zum schreiben geoeffnet
open (WRITE, ">$dateiname") || die "konnte Datei nicht beschreiben\n";
#Die Datei wird mit dem Inhalt des Arrays ueberschrieben.
print WRITE @content;
##die fertige Datei wird geschlossen.
close (WRITE);
1
2
3
4
5
6
7
tie my @array,'Tie::File',$dateiname or die $!;
for(@array){
chomp;
s~$_~$hash{$_}~;
$_ .= "\n";
}
untie @array;
5 Einträge, 1 Seite |