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

时间:2011-10-28 15:58:33

标签: escaping awk

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

alias svnrmall="svn status | grep '^\!' | awk '{print \$2}' | xargs svn rm"

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

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

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

alias svnrmall="... | awk \"{print '\$2'}\" | ..."

1 个答案:

答案 0 :(得分:15)

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

alias svnrmall="... | awk -v q="'" '{print q $2 q}' | ..."