awk-Skript mit festem Arbeitsdateinamen

From: Polytropon <freebsd(at)edvax.de>
Date: Fri, 10 Apr 2009 04:01:30 +0200

Guten Morgen / guten Abend / gute Nacht,

ich sitze hier und brüte über einem awk-Problem (natürlich unter FreeBSD),
vielleicht kann mir mal jemand freundlich auf den Hinterkopf schlagen, denn
ich komme einfach nicht drauf:

Ich möchte in einem awk-Skript die Eingabedatei definieren, aus der
gelesen werden soll. Es ist eine CSV-Datei. Nach "man awk" gibt es
dafür FILENAME, also schrieb ich:

        #!/usr/bin/awk -f
        FILENAME = "blubb.csv";
        FS = ":";
        !/^#/ && (length != 0) {
                
                ...
                und hier jetzt die Anweisungen für jede Zeile
                ...
        }

Das funktioniert aber nicht, da von der Standardeingabe gelesen wird.
Das gilt auch, wenn die beiden ersten Zuweisungen in der BEGIN { ... }-
Gruppe stehen.

Fügt man einen "sh-Wrapper" herum, d. h. leitet man die Quelldatei
direkt in awk ein, z. B. mit

        % awk -f bla.awk -F ":" blubb.csv

dann funktioniert es. Da das Skript aber +x und korrekt "geshebangt" ist,
wünsche ich,

        % ./bla.awk

aufrufen zu können, ohne einen "sh-Wrapper" mit o. g. Aufruf drumrum-
kleben zu müssen.

Die Frage ist also: Was mache ich hier gravierend falsch?

-- 
Polytropon
>From Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 10 Apr 2009 - 04:01:40 CEST

search this site