sfg*_*ups 4 shell perl quoting
我使用Perl单行创建一个SQL语句,但我不能包含单引号.
这就是我想要的:首先提交并添加引号.
echo "a,b" | perl -F',' -lane 'print $F[0];'
'a'
Run Code Online (Sandbox Code Playgroud)
我尝试了几种不同的方法,但它对我不起作用.
1.
echo "a,b" | perl -F',' -lane 'print qq('$F[0]');'
[0]
Run Code Online (Sandbox Code Playgroud)
2.
echo "a,b" | perl -F',' -lane 'print q('$F[0]');'
[0]
Run Code Online (Sandbox Code Playgroud)
这是另一个有趣的.
它使用print语句打印单引号,但如果我为变量赋值并打印它不起作用.
perl -lwe "print q( i'am );"
i'am
perl -lwe "$b=q( didn't ); print $b"
Run Code Online (Sandbox Code Playgroud)
你能帮助我理解我们如何在Perl单行中使用单引号和双引号?
dog*_*ane 17
您不能单独使用单引号.您需要使用以下方法正确地转义它们'\'':
$ echo "a,b" | perl -F',' -lane 'print "'\''$F[0]'\''";'
'a'
Run Code Online (Sandbox Code Playgroud)
Eug*_*ash 10
您需要了解shell如何处理引号.
我只想使用ASCII值':
echo "a,b" | perl -F',' -lane 'print "$F[0]\047";'
a'
Run Code Online (Sandbox Code Playgroud)
q//和qq//运营商也可以在单行中使用.