#!/usr/bin/perl use strict; use warnings; use Net::FTP; use Text::CSV; #######ftp Zugangsdaten und Zielverzeichnis festlegen######## my $host = "ftp.1234.de"; my $user = "ich"; my $pass = "1234"; my $dest_dir = "/home/data/incoming/"; my $src_dir="/sonstiges/test"; my $in_sep=';'; my $out_sep="\t"; my $ftp = Net::FTP->new($host, Debug => 0) or die "Es konnte keine Verbindung zu $host: $@ aufgebaut werden"; $ftp->login($user, $pass) or die("Login schlug fehl: ".$ftp->message); $ftp->cwd($src_dir) or die "Ziel-Verzeichnis nicht gefunden", $ftp->message; foreach my $filename ($ftp->ls('*.*')){ my $ouput_filename="$dest_dir$filename"; # Datei setzen, die gelesen werden soll if(my $data=$ftp->retr($filename)){ my $csv=Text::CSV->new({ sep_char => $in_sep }); my $out_csv=Text::CSV->new({ sep_char => $out_sep }); open my $ofh, '>', $ouput_filename or die "Could not open $filename: $!"; while ( my $columns = $csv->getline( $data ) ) { $out_csv->combine(@$columns); print $ofh $out_csv->string()."\n"; } # Verbindung schließen $data->close(); close $ofh; } } print "\n Download beendet \n"; $ftp->quit();