PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : awk und Vergleichsoperator



atobias
20-10-2005, 13:00
Hallo,

ich habe ein Problem mit gawk.

(Schande über mich, aber auf Arbeit habe ich Win2000. Auf diesem Rechner habe ich auch das Problem.)

Folgender Code funktioniert:


Code:
gawk '{ if($1==0.0) printf("%lf\n",num);}' ./file.txt


Die folgende Zeile funktioniert allerdings nicht:

Code:
gawk '{ if($1<=0.0) printf("%lf\n",num);}' ./file.txt


Es erscheint die Fehlermeldung:

Zitat:
Das System kann die angegebene Datei nicht finden

Das Problem ist aller anschein nach, dass < als Umleitung verstanden wird. Wie muss der Code richtig heißen?
Hat jemand eine Lösung?

Viele Grüße

Tobias

Mehlwurm
20-10-2005, 13:17
bei MICYsoft brauchst du meiner meinung nach keinen punkt vor /file,
also nur filename.txt

atobias
20-10-2005, 13:28
Richtig. Löst aber das Problem nicht.

Viele Grüße

Tobias

bash_azubi
20-10-2005, 18:12
Ich habe mir eben mal schnell gawk bei sf.net (http://gnuwin32.sourceforge.net/packages/gawk.htm) heruntergeladen.

Was ist mir vorstellen kann, dass das - als Option verstanden wird. Entweder mußt du es also versuchen zu escapen oder du schreibst es anders.

Du magst ja augenscheinlich nach negativen Werten in der 1. Spalte suchen.
Dann probier doch mal folgendes:


C:\>more 1.txt
2 hier nicht
3 hier - nicht
-4 hier ist was negativ
0.0 hier ist es nur null
-1 negativ

C:\>C:\Programme\GnuWin32\bin\gawk "/^-/ { print $0 }" ./1.txt
-4 hier ist was negativ
-1 negativ

Hilft dir das?

ninguno
21-10-2005, 07:25
ich habs zwar nicht ausprobiert, aber imho musst du das umlenkungszeichen < mit dem hütchen ^ escapen:

gawk '{ if($1^<=0.0) printf("%lf\n",num);}' ./file.txt