échapper à un point avec double barre oblique inverse - awk

10

le livre "programmation awk efficace" a un exemple sur le découpage de champs. voici l'exemple:

Si vous souhaitez que les champs soient séparés par un point littéral suivi d'un caractère unique, utilisez ‘FS = "\\.."’.

Pourquoi est-ce une double barre oblique inverse? ne devrait-il pas en être ainsi \..?

Majid Azimi
la source

Réponses:

14

Les expressions de chaîne et régulières dans awk partagent plusieurs des mêmes échappements de barre oblique inverse, y compris \\pour un seul \. Puisqu'il FSs'agit d'une valeur de chaîne qui est interprétée en interne comme une expression régulière, ces échappements partagés doivent être échappés deux fois. Ainsi, \\une chaîne devient \au moment où elle est interprétée comme une expression régulière.

jw013
la source