Citação ANSI-C
De acordo com o manual do Bash, isso se chama citações ANSI-C . O manual diz:
Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard.
Na prática, isso significa que '\t'
não será expandido para um caractere de tabulação, mas $'\t'
será. A saída deve ser equivalente a usar echo -e
, mas pode ser usada em qualquer lugar em que você usasse uma string sem exigir substituição de comando .
Utilitários como o GNU sed executam sua própria expansão de caracteres de escape, mas o GNU grep não. O shell Bash, não o grep, expande os caracteres de escape em strings citadas em ANSI-C. Sem a cotação ANSI-C, a expressão regular que você publicou não contém caracteres de tabulação para corresponder à entrada.