einem einzelnen Punkt mit doppeltem Backslash entkommen - awk

9

Das Buch "effektive awk-Programmierung" enthält ein Beispiel für die Feldaufteilung. Hier ist das Beispiel:

Wenn Sie möchten, dass Felder durch einen Literalpunkt gefolgt von einem einzelnen Zeichen getrennt werden, verwenden Sie ‘FS = "\\.."’.

Warum ist es doppelter Backslash? sollte es nicht sein \..?

Majid Azimi
quelle

Antworten:

13

Sowohl Zeichenfolgen- als auch reguläre Ausdrücke in awk haben viele der gleichen Backslash-Escapezeichen, auch \\für eine einzelne \. Da FSes sich um einen Zeichenfolgenwert handelt, der intern als regulärer Ausdruck interpretiert wird, müssen diese gemeinsam genutzten Escapezeichen zweimal maskiert werden. Somit wird \\eine Zeichenfolge zu \dem Zeitpunkt, zu dem sie als regulärer Ausdruck interpretiert wird.

jw013
quelle