1
2
3
4
5
6
7
8
9
vorher
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
nachher
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
1
2
3
4
5
6
7
8
9
vorher
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
nachher
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
s/^(.{10})\s\s\s/$1\t\t/
1 2 3 4 5 6 7
# ist eher ein Kandidat für einen einzeiler oder skript; weniger direkt als spontane Eingabe im Editor # vielleicht als Funktion vorbereitbar und dann verwendbar my @fields = split /\s+/, $line; my $format = ( "%25s" x @fields ) . "\n"; printf $format, @fields;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use strict; use warnings; my ($col1, $col2, $col3); format STDOUT = @<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<< $col1, $col2, $col3 . while (<DATA>) { chomp; ($col1, $col2, $col3) = split /\s+/; write STDOUT; } __DATA__ xxxxx yyyyyy zzzzz xxxxx yyyyyy zzzzzzz xxxxx yyyyyy zzzzzz
1
2
3
4
5
6
7
8
9
10
0000000000123456789012345
1234567891111111111222222
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
nachher
xxxxx yyyyyy zzzzz
xxxxx yyyyyy zzzzzzz
xxxxx yyyyyy zzzzzz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/perl use strict; use warnings; use 5.010; my @rows = <DATA>; print "\n1. Loesung:\n"; print s/(\S+\s+\S+)\s+(\S+)/$1 $2/r for @rows; print "\n2. Loesung:\n"; print s/ +/\t/gr for @rows; print "\n3. Loesung:\n"; printf "%s\t%s\t%s", split / +/ for @rows; __DATA__ xxxxx yyyyyy zzzzz xxxxx yyyyyy zzzzzzz xxxxx yyyyyy zzzzzz