Как я могу удалить отсутствующие файлы с пробелами в SVN? - PullRequest
12 голосов
/ 12 мая 2009

У меня есть этот фрагмент, который я нашел.

svn status | grep '\!' | awk '{print $2;}' | xargs svn rm 

Удаляет все отсутствующие файлы, если я или кто-либо удаляет файлы вручную (через редактор или они удаляются через систему)

Но мое bash-кодирование не очень хорошее, чего не хватает, так это того, что он не работает с файлами, в которых есть пробелы.

svn rm Super\ Test.file

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

Ответы [ 3 ]

18 голосов
/ 12 мая 2009
svn status | grep '^\!' | cut -c8- | while read f; do svn rm "$f"; done
4 голосов
/ 12 мая 2009

Вы можете 0 и использовать флаг -0 для xargs.

svn st | awk '/^!/ { sub("^! +", ""); printf "%s\0", $0 }' | xargs -0 svn rm

Это имеет еще одно преимущество в том, что файлы с кавычками или другими специальными символами также не испортят командную строку xargs.

0 голосов
/ 12 мая 2009

С GNU awk я могу сделать:

svn stat | awk -v FIELDWIDTHS="1 6 1000 1" -v ORS=$'\0' '$1 == "!" { print $3 }' | xargs -0 svn rm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...