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 \..?

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.