Perl one-liner avec l'apostrophe
J'ai été l'utilisation de Perl one-liner pour créer une instruction SQL, mais je ne suis pas en mesure d'inclure des guillemets simples.
C'est ce que je veux: Prendre la première à déposé et ajouter des guillemets à elle.
echo "a,b" | perl -F',' -lane 'print $F[0];'
'a'
J'ai essayé de plusieurs façons, mais cela n'a pas fonctionné pour moi.
1.
echo "a,b" | perl -F',' -lane 'print qq('$F[0]');'
[0]
2.
echo "a,b" | perl -F',' -lane 'print q('$F[0]');'
[0]
Ici est un autre site intéressant.
C'est l'impression d'une seule citation avec l'instruction print, mais si je assigner une valeur à la variable et de l'impression qu'il ne fonctionne pas.
perl -lwe "print q( i'am );"
i'am
perl -lwe "$b=q( didn't ); print $b"
Pouvez-vous m'aider à comprendre comment peut-on utiliser les guillemets simples et doubles en Perl, one-liners?
OriginalL'auteur sfgroups | 2011-02-24
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser les guillemets simples seul. Vous devez vous échapper correctement à l'aide de
'\''
Cela fonctionne:echo "a,b" | perl -F',' -lane 'print "$F[0]'\''";'
OriginalL'auteur dogbane
Vous devez apprendre comment votre shell traite des citations.
Je voudrais juste utiliser la valeur ASCII pour
'
:q//
etqq//
les opérateurs peuvent également être utiles dans le one-liners.OriginalL'auteur Eugene Yarmash
Utiliser une variable avec la valeur octale:
Aussi, une légère modification de votre tentative #1 devrait fonctionner:
Qui utilise des guillemets doubles pour l'extérieur, et s'échappe le signe de dollar pour éviter que le shell de l'interpréter.
OriginalL'auteur Dennis Williamson
De placer le script dans des guillemets, plutôt que de simples citations vous permettra d'utiliser les guillemets à l'intérieur du script sans avoir à s'échapper ou de l'utilisation ANSI séquences pour représenter l'apostrophe. C'est probablement le plus efficace et facilement lisibles à la solution.
'
l'intérieur d'un seul devis, et seulement 1 à échapper à une$
à l'intérieur de guillemets doubles. Si c'est l'inverse, ou si vous avez déjà écrit beaucoup trop d'un liner de revenir en arrière et changer les guillemets simples peuvent être plus lisible.OriginalL'auteur BadFileMagic