如何在awk print语句中的参数周围添加单引号?

3 awk escaping

为方便起见,我为svn rm工作副本中的所有已删除文件创建了一个别名:

alias svnrmall="svn status | grep '^\!' | awk '{print \$2}' | xargs svn rm"
Run Code Online (Sandbox Code Playgroud)

这很有效,除非文件名包含空格字符.

这个问题的简单解决方案似乎是awk将每个文件路径用单引号括起来,但我很难弄清楚如何做到这一点.

例如,像这样的事情(除了这会导致错误:"表达式中的"char'''):

alias svnrmall="... | awk \"{print '\$2'}\" | ..."
Run Code Online (Sandbox Code Playgroud)

Rit*_*esh 15

使用-v定义变量q并在awk中使用该变量

alias svnrmall="... | awk -v q="'" '{print q $2 q}' | ..."
Run Code Online (Sandbox Code Playgroud)