Как добавить одинарные кавычки вокруг аргумента в выражении awk print? - PullRequest
3 голосов
/ 28 октября 2011

Для удобства я создал псевдоним для svn rm всех удаленных файлов в моей рабочей копии:

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

Это работает довольно хорошо, за исключением случаев, когда имя файла содержит символ пробела.

Кажется, простое решение проблемы - awk заключить каждый путь к файлу в одинарные кавычки, но мне трудно понять, как это сделать.

Например, что-то вроде этого (за исключением того, что это приводит к ошибке: "недопустимый символ" в выражении "):

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

1 Ответ

15 голосов
/ 28 октября 2011

Используйте -v для определения переменной q и используйте эту переменную в awk

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