escapando de um único ponto com barra invertida dupla - awk

10

O livro "programação awk eficaz" tem um exemplo de divisão de campo. aqui está o exemplo:

Se você deseja que os campos sejam separados por um período literal seguido por qualquer caractere único, use ‘FS = "\\.."’.

Por que é uma barra invertida dupla? não deveria ser \..?

Majid Azimi
fonte

Respostas:

14

As expressões regulares e de cadeia de caracteres no awk compartilham muitos dos mesmos escapes de barra invertida, inclusive \\para um único \. Como FSé um valor de sequência que é interpretado internamente como uma expressão regular, essas fugas compartilhadas precisam ser escapadas duas vezes. Assim, \\em uma string, torna-se \no momento em que é interpretada como uma expressão regular.

jw013
fonte