Je veux faire ce qui suit
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
Mais l'échappement des guillemets simples de cette façon ne fonctionne pas.
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
Comment faire ? Merci de votre aide.
Je veux faire ce qui suit
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
Mais l'échappement des guillemets simples de cette façon ne fonctionne pas.
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
Comment faire ? Merci de votre aide.
Une autre option consiste à passer le guillemet simple comme une variable awk :
awk -v q=\' 'BEGIN {FS=" ";} {printf "%s%s%s ", q, $1, q}'
Un exemple plus simple avec la concaténation de chaînes de caractères :
# Prints 'test me', *including* the single quotes.
$ awk -v q=\' '{print q $0 q }' <<<'test me'
'test me'
Pour les petits scripts, une façon optionnelle de les rendre lisibles est d'utiliser une variable comme celle-ci :
awk -v fmt="'%s'\n" '{printf fmt, $1}'
Je l'ai trouvé pratique dans un cas où j'ai dû produire plusieurs fois le caractère guillemet simple dans la sortie et le \047
le rendait totalement illisible.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.