#!/usr/bin/perl
use warnings;
use strict;my @data;
my $columns = 5;
open(FH,"<BLUBB.txt") or die $!;
while(my $line = <FH>) {
chomp $line;
my @array = (split(/[\t\s\\]/,$line))[0..($columns-1)];
foreach (@array) {
s/^\s+/;/g;
s/\s+$/;/g;
} # foreach
if($line =~ /\bBLA|SAND?\b/ and $line !~ /\bMUSCHEL\b/){
push(@data,[@array]);
}
} # while
close (FH);
my $format = '';
for my $i(0..scalar(@{$data[0]})-1){
my $max = find_longest(map{$_->[$i]}@data);
$format .= '%-'.$max.'s ';
}
for my $entry(@data){
print sprintf($format . "\n",@$entry);
}
open(OUTDATEN, ">ZIEL1.txt") or die "Fehler beim oeffnen/anlegen: $!";
for my $entry(@data)
{
print OUTDATEN join(';',@$entry),";50","\n"; #ausgabe in datei hier wird festgelegt das ";" als trenner gilt
}
close (OUTDATEN)or die $!;
sub find_longest{ # hier wird der laengste inhalt des feldes berechnet
my $longest = 0;
for(@_){
my $length = length($_);
$longest = $length if($length > $longest);
}
return $longest;
}