GAWK-Skript - Drucken Sie den Dateinamen im BEGIN-Bereich

8

Ich schreibe ein gawk-Skript, das beginnt

%Vor%

Ich rufe die Datei über ./script file1.html auf, aber das Skript gibt nur nichts zurück. Irgendwelche Ideen?

    
jonseager 26.03.2011, 11:28
quelle

4 Antworten

11

Sie können ARGV [1] anstelle von FILENAME verwenden, wenn Sie es wirklich im BEGIN-Block verwenden möchten

%Vor%     
kurumi 26.03.2011, 13:52
quelle
8

Sie können den Dateinamen drucken, wenn Sie auf Zeile 1 stoßen:

%Vor%

Wenn Sie weniger kryptisch sein wollen, einfacher zu verstehen:

%Vor%

AKTUALISIEREN

Meine ersten beiden Lösungen waren falsch. Danke, Dennis, dass du es aufgezeigt hast. Sein Weg ist richtig:

%Vor%     
Hai Vu 26.03.2011 16:48
quelle
7

Direkt von der Manpage (leicht umformatiert):

  

DATEINAME: Der Name der aktuellen Eingabedatei. Wenn keine Dateien in der Befehlszeile angegeben sind, ist der Wert von FILENAME "-". FILENAME ist jedoch innerhalb des BEGIN-Blocks nicht definiert (sofern nicht durch getline festgelegt).

    
JUST MY correct OPINION 26.03.2011 11:44
quelle
0

Wenn ich auf die Antwort von Hai Vu baue, schlage ich vor, dass wenn der Dateiname nur einmal pro Datei gedruckt werden soll, er in eine Bedingung eingeschlossen werden muss.

%Vor%     
Warren Wright 17.04.2016 23:21
quelle

Tags und Links