Da die eckigen Klammern in doppelte Anführungszeichen gesetzt werden müssen, sind innerhalb des eckigen Ausdrucks drei Anführungszeichen erforderlich.
Zum Beispiel:
%code%
Ich bin neu in grep und awk - mit Windows 7 (ich habe grep und awk für Windows von GnuWin heruntergeladen).
Ich habe Probleme beim Ausführen dieses Skripts:
%Vor%Ich bekomme den Fehler:
awk: '{print
awk: ^ ungültiges Zeichen '' 'in Ausdruck
Ich glaube, es könnte etwas damit zu tun haben, doppelte Anführungszeichen in Windows zu verwenden, aber ich habe alle Kombinationen ausprobiert, die mir einfallen, und trotzdem funktioniert es nicht.
Kann jemand helfen? Danke
Unter Windows müssen Sie doppelte Anführungszeichen verwenden, um Ihre awk-Befehle zu zitieren. Also
%Vor%muss in
geändert werden %Vor%Aber denken Sie daran, dass Sie keine doppelten Anführungszeichen in Anführungszeichen verwenden dürfen, Sie müssen ihnen entkommen. Unter Windows können Sie nicht einfach \ verwenden, um es zu umgehen. Sie benötigen die folgende Syntax:
%Vor%Genau, das ist \ "" , um " in doppelten Anführungszeichen darzustellen.
Sie müssen doppelte Anführungszeichen um Ihr awk-Skript verwenden und die eingebetteten Anführungszeichen in der print-Anweisung mit einem guten alten umgekehrten Schrägstrich umgehen: [g] awk "BEGIN {print \" Hallo Escape-Zeichen! \ "}"
Hier ist ein kurzes Beispiel, das eine input.csv akzeptiert, dann Ausgabe new.csv
:
Das Escapen von Befehlszeilenelementen ist unter Windows immer ein Problem. Als letzten Ausweg können Sie gawk "{print """,""" }"
! Verwenden!
Also: Ihre Datei %code% enthält:
%Vor%Und du machst %code%
Ich bin neu in grep und awk - mit Windows 7 (ich habe grep und awk für Windows von GnuWin heruntergeladen).
Ich habe Probleme beim Ausführen dieses Skripts:
%Vor%Ich bekomme den Fehler:
awk: '{print
awk: ^ ungültiges Zeichen '' 'in Ausdruck
Ich glaube, es könnte etwas damit zu tun haben, doppelte Anführungszeichen in Windows zu verwenden, aber ich habe alle Kombinationen ausprobiert, die mir einfallen, und trotzdem funktioniert es nicht.
Kann jemand helfen? Danke
Hier ist ein kurzes Beispiel, das eine input.csv akzeptiert, dann Ausgabe %code% :
%Vor%Sie müssen doppelte Anführungszeichen um Ihr awk-Skript verwenden und die eingebetteten Anführungszeichen in der print-Anweisung mit einem guten alten umgekehrten Schrägstrich umgehen: [g] awk "BEGIN {print \" Hallo Escape-Zeichen! \ "}"
Yousui sagte:
... Sie können doppelte Anführungszeichen nicht in Anführungszeichen setzen, Sie müssen sie also umgehen. Unter Windows können Sie nicht einfach \ verwenden, um es zu umgehen.
während ReluctantBIOSGuy hat nur \ "in seinem Beispiel verwendet.
Ich habe sowohl \ "" als auch \ "versucht, und beide funktionieren für mich (guckt unter Windows XP sowohl in der Kommandozeile als auch in einer Batch-Datei).
Hier ist ein Beispiel mit "in der Ausgabe (ein String-Literal in c-Code):
%Vor%Da die eckigen Klammern in doppelte Anführungszeichen gesetzt werden müssen, sind innerhalb des eckigen Ausdrucks drei Anführungszeichen erforderlich.
Zum Beispiel:
%code%
Ich habe über die Jahre hinweg gezögert, AWK unter Windows laufen zu lassen. Es gibt Probleme mit Zitaten und Pfadbegrenzern. Meine letzte Lösung ist, "AWK frei fliegen" zu lassen, das ist frei von der Kommandozeile. Ich verstehe, dass es als ein Klebstoff für Unix-Stil Befehlszeile Juju entwickelt wurde, aber ich wollte es nur als Skriptsprache verwenden.
Alle meine AWK-Skripte enthalten eine Liste von Zielen und eine definierte Ausgabedatei. Sie können durch Doppelklicken auf eine zugehörige DOS-Batch-Datei ausgeführt werden:
%Vor%Ein Beispiel meiner AWK-Skripte ist unten dargestellt (extrahiere alle Zeilen mit :: tab und drucke sie aus):
%Vor%Sie können sehen, dass das Eingabeziel im Skript definiert wird und das endgültige Ausgabeziel im Skript definiert wird. Es verwendet eine temporäre ".out" -Datei, um eine große Anzahl von Druckumleitungen zu vermeiden, indem die Datei an die gewünschte Ausgabe im END-Abschnitt des Skripts kopiert wird.
Ich habe AWK-Dateien mit dieser Batch-Datei verknüpft und eine Option in meinem Editor hinzugefügt, um AWK-Dateien an die Batch-Datei zu senden.
Mit freundlichen Grüßen
Unter Windows müssen Sie doppelte Anführungszeichen verwenden, um Ihre awk-Befehle zu zitieren. Also
%Vor%muss in
geändert werden %Vor%Aber denken Sie daran, dass Sie keine doppelten Anführungszeichen in Anführungszeichen verwenden dürfen, Sie müssen ihnen entkommen. Unter Windows können Sie nicht einfach \ verwenden, um es zu umgehen. Sie benötigen die folgende Syntax:
%Vor%Genau, das ist \ "" , um " in doppelten Anführungszeichen darzustellen.
Ich habe über die Jahre hinweg gezögert, AWK unter Windows laufen zu lassen. Es gibt Probleme mit Zitaten und Pfadbegrenzern. Meine letzte Lösung ist, "AWK frei fliegen" zu lassen, das ist frei von der Kommandozeile. Ich verstehe, dass es als ein Klebstoff für Unix-Stil Befehlszeile Juju entwickelt wurde, aber ich wollte es nur als Skriptsprache verwenden.
Alle meine AWK-Skripte enthalten eine Liste von Zielen und eine definierte Ausgabedatei. Sie können durch Doppelklicken auf eine zugehörige DOS-Batch-Datei ausgeführt werden:
%Vor%Ein Beispiel meiner AWK-Skripte ist unten dargestellt (extrahiere alle Zeilen mit :: tab und drucke sie aus):
%Vor%Sie können sehen, dass das Eingabeziel im Skript definiert wird und das endgültige Ausgabeziel im Skript definiert wird. Es verwendet eine temporäre ".out" -Datei, um eine große Anzahl von Druckumleitungen zu vermeiden, indem die Datei an die gewünschte Ausgabe im END-Abschnitt des Skripts kopiert wird.
Ich habe AWK-Dateien mit dieser Batch-Datei verknüpft und eine Option in meinem Editor hinzugefügt, um AWK-Dateien an die Batch-Datei zu senden.
Mit freundlichen Grüßen
Yousui sagte:
... Sie können doppelte Anführungszeichen nicht in Anführungszeichen setzen, Sie müssen sie also umgehen. Unter Windows können Sie nicht einfach \ verwenden, um es zu umgehen.
während ReluctantBIOSGuy hat nur \ "in seinem Beispiel verwendet.
Ich habe sowohl \ "" als auch \ "versucht, und beide funktionieren für mich (guckt unter Windows XP sowohl in der Kommandozeile als auch in einer Batch-Datei).
Hier ist ein Beispiel mit "in der Ausgabe (ein String-Literal in c-Code):
%Vor%