Você pode usar apenas (ou 7 ) na sua string, que awk leva a significar ' .
awk -F, '{print "SELECT * from user where id = " ";"}' myfile.csv
Isso é meio deselegante ("Qual é o valor mágico repetido mágica '47' fazendo ?!" ) mas a sintaxe é limpa e esta técnica para fazer uma simples citação é bonita bem conhecido .
awk é o que trata especialmente, não o seu shell. Em ' ' -quadas cadeias, as conchas estilo Bourne como Bash não executam qualquer expansão . C Shells como tcsh do, mas eles não expandem e isso ainda funciona.
Você pode preferir usar 7 em vez de . Ambos funcionam, a menos que seja seguido imediatamente por um dígito octal (0-7). Nesse caso, você deve use 7 para evitar indicar o caracter errado. Observe que, diferentemente de alguns idiomas, o 47 in é octal mesmo sem o primeiro 0 ; veja abaixo.
O que significa ? Por que isso usa quando dessa forma usa 0x27 ?
Isso ocorre porque dois dezesseis fazem quatro oitos.
-
é uma sequência de caracteres octal , por isso é 4 × 8 + 7 × 1 = 39.
-
0x27 é um literal numérico hexadecimal , por isso é 2 × 16 + 7 × 1 = 39.
Então o printf ' %c ' especificador formata como um caractere.
A verificação com python -c 'print int("47", 8), int("27", 16)' fornece 39 39 , conforme esperado.