O uso de uma barra invertida em uma expressão regular (como no grep) é diferente de como um shell pode interpretá-la. Um shell pode olhar para \n
e sem aspas, converter para um retorno de carro. Em uma expressão regular, um \
significa "não interprete o próximo caractere como caractere regex especial, trate-o como um caractere literal".
Neste exemplo
'my\\name'
Você está dizendo:
Encontre "my" seguido por um literal "\" (o \
), seguido por um literal "n" (o \n
).
Então, isso correspondeu a my\name
O próximo exemplo:
'my\\name'
Você está dizendo:
Encontre "my" seguido por um literal "\" (o \
), seguido por outro literal "\" (o \
).
Portanto, isso não corresponde a my\name
.