#!/usr/bin/perl use strict; use warnings; use Getopt::Long; my $name; my $prename; my $filename; my $c50 = '-' x 50; sub help { print < \$prename, # Parameter Vorname als String # 'name|n=s' => \$name, # Parameter Name als String # 'datei|f=s' => # \$filename # Parameter Dateiname der einzulesenden Datei als String #); GetOptions(%opts); if ( not defined($name) and not defined($prename) ) { help(); # bei fehlenden Parametern Hilfe anzeigen } ### Eingabedatei öffnen foreach my $in_fh = (@ARGV) { #my @daten_zeile = split /#/, $zeile; my $sum = 0; open(my $data, '<', $in_fh) or die "Could not open '$in_fh' $!\n"; while (my $line = <$data>) { chomp $line; my @fields = split "," , $line; $out_fh += $fields[2]; } # Daten des ersten Felds #my $daten_erstes = $daten_zeile[0]; } open $in_fh, '<', $filename # im Lesemodus öffnen or die "Datei '$filename' kann nicht geöffnet werden: $!" ; # bei Fehlschlag Fehler ausgeben ### Ausgabedatei öffnen my $out_fh; my $out_filename = "$filename.tmp"; # temporärer Dateiname open $out_fh, '>', $out_filename # im Schreibmodus öffnen or die "Datei '$out_filename' kann nicht erzeugt werden: $!" ; # bei Fehlschlag Fehler ausgeben flock $out_fh, 0; ### Eingabedatei einlesen #while ( my $line = <$in_fh> ) { # Zeilenweise in Variable $line einlesen # # if (length $name # falls Parameter $name vorhanden # and $line =~ /#\Q$name\E\s*Name#/ # ) # und $name mit möglichen nachfolgenden Leerzeichen in $line vorhanden # { # $line =~ s/#\Q$name\E\s*Name/#${c50}Name/ # ; # ersetze das Vorkommen durch den Ersatzstring # } # # if (length $prename # falls Parameter $prename vorhanden # and $line =~ /#\Q$prename\E\s*Vorname#/ # ) # und $prename mit möglichen nachfolgenden Leerzeichen in $line vorhanden # { # $line =~ s/#\Q$prename\E\s*Vorname/#${c50}Vorname/; # ersetze das Vorkommen durch den Ersatzstring # } print $out_fh $line; # speichere neue Zeile in Ausgabedatei } ### Eingabedatei schließen close $in_fh or die "Datei '$filename' kann nicht geschlossen werden: $!"; # bei Fehlschlag Programmabbruch mit Fehlermeldung ### Ausgabedatei schließen close $out_fh or die "Datei '$out_filename' kann nicht geschlossen werden: $!"; # oder bei Fehlschlag Programmabbruch mit Fehlermeldung # alte Eingabedatei löschen #unlink $filename or die "Datei '$filename' kann nicht gelöscht werden!"; # Ausgabedatei in Dateinamen der Eingabedatei umbenennen #rename ($out_filename, $filename) # umbenennen # or die "Datei '$out_filename' kann nicht in '$filename' umbenannt werden!"; # oder Programmabbruch mit Fehlermeldung 1;