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.