User since
2003-08-04
14371
Artikel
ModeratorIn
Wenn ich Deine Wünsche richtig interpretiert habe: (ungetestet)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl
use strict;
use warnings;
my $input = '/path/to/file';
print "Anzahl Zeilen: ";
chomp(my $numberOfFields = <STDIN>);
print "Spalte (Beginn): ";
chomp(my $start = <STDIN>);
print "Spalte (Ende): ";
chomp(my $stop = <STDIN>);
my $string = '';
open(my $fh,"<$input") or die $!;
while(<$fh>){
$string .= substr($_,$start-1,$stop-$start+1);
}
close $fh;
print $string;
User since
2005-09-28
4
Artikel
BenutzerIn
Funktioniert soweit.
Nur leider sieht das Endergebnis so aus :
5.96499E 5.20288E 5.24402E 1.08839E
Ich bräuchte es aber so :
5.96499E
5.20288E
5.24402E
1.08839E
und vor allem in einem Output-File, nicht nur als Bildschirmaussgabe.
Danke nochmal,
Tulkas77
User since
2003-08-04
14371
Artikel
ModeratorIn
Du hattest oben auch alles in einer Zeile. Deswegen hatte ich ja geschrieben, dass Du zeigen sollst, wie der Output aussehen soll...
ersetze:
$string .= substr($_,$start-1,$stop-$start+1); durch
$string .= substr($_,$start,$stop-$start+1)."\n";
und wie man in eine Datei schreibt, kannst Du in
perldoc -f open
perldoc -f close
perldoc -f print
nachlesen...
User since
2003-08-04
14371
Artikel
ModeratorIn
Achso: an die perldoc kommst Du, indem Du auf der Kommandozeile
perldoc -f open tippst, oder auf
http://perldoc.perl.org schaust...
User since
2005-09-28
4
Artikel
BenutzerIn
Juchhu !!!
Jetzt klappts.
Merci vielmals nochmal.
Gruß Tulkas77