Forum: PC-Programmierung Frage zu einem kleinen Perl-Script


von Jonny_B (Gast)


Lesenswert?

Hallo, ich habe eine Datei (file.dat) mit folgendem Inhalt:

1 25.00 545.00 285.00 #N/A 1162 116.26 99.21 0.5068 0.0074 0.0004 0.0003 
12
2 25.00 545.00 335.00 #N/A 1207 120.89 99.03 0.5085 0.0064 0.0004 0.0003 
16
3 25.00 545.00 385.00 #N/A 1415 141.65 99.18 0.5068 0.0063 0.0003 0.0002 
16
4 25.00 545.00 435.00 #N/A 1381 138.18 99.55 0.5133 0.0065 0.0003 0.0002 
16
5 25.00 545.00 485.00 #N/A 1224 122.63 99.47 0.5183 0.0064 0.0004 0.0003 
12
6 25.00 545.00 535.00 #N/A 1245 124.55 99.57 0.5219 0.0065 0.0004 0.0003 
16
7 25.00 545.00 585.00 #N/A 1217 121.83 99.11 0.5195 0.0062 0.0003 0.0002 
16
8 25.00 545.00 635.00 #N/A 1330 133.07 99.17 0.5204 0.0065 0.0004 0.0002 
19
9 25.00 545.00 685.00 #N/A 1330 133.07 99.18 0.5216 0.0066 0.0004 0.0003 
16

Ich möchte nun eine zweite Datei (label.dat) haben, in der folgendes 
steht:

set label "0.5068" at 545.00,285.00
set label "0.5085" at 545.00,335.00
set label "0.5068" at 545.00,385.00
set label "0.5133" at 545.00,435.00
set label "0.5183" at 545.00,485.00
set label "0.5219" at 545.00,535.00
set label "0.5195" at 545.00,585.00
set label "0.5204" at 545.00,635.00
set label "0.5216" at 545.00,685.00


Also: in die Klammer kommt der Wert aus Spalte 9, hinter dem "at" stehen 
die Spalten 3 und 4.

Mit Perl soll das so gehen:

perl -ane 'print "set label \"($F[9])\" at $F[3],$F[4]\n"' file.dat > 
label.plt

Aber ich bekomme immer einen Fehler angezeigt:

can't find string terminator "'" anywhere before EOF at -e line 1.



Gruß
Jonny_B

von Uhu Uhuhu (Gast)


Lesenswert?

Unter welchen Betriebsystem machst du das denn?

von Werner B. (Gast)


Lesenswert?

Ohne zu testen...  ==>;<==

perl -ane 'print "set label \"($F[9])\" at $F[3],$F[4]\n";' 
file.dat>label.plt

von Jonny_B (Gast)


Lesenswert?

Unter Windows NT .-(


Jonny_B

von Uhu U. (uhu)


Lesenswert?

Jonny_B wrote:
> Unter Windows NT .-(

Na dann funktioniert die *nix-Syntax für den Kommandointerpreter 
natürlich nicht - der hat nämlich keine Ahnung, was ' bedeutet...

Schreib am besten eine .pl-Datei, die dein Programm enthält, dann mußt 
du dich nicht mit mehrfach escapten Anführungszeichen rumärgern.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich habe mal eine halbe Stunde lang vergeblich versucht einem Programm 
in einer Batch-Datei ein "%" als Parameter zu übergeben, seitdem habe 
ich die Windows-Shell aufgegeben.

von Uhu U. (uhu)


Lesenswert?

Das muß man verdoppln, dann gehts. Ich hab damit so meine Erfahrungen, 
vermisse den Scheiß aber nicht, seit ich unter Windows mit Scripthost 
und JavaScript arbeite.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nein, ging eben nicht...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.