Это довольно легко сделать с помощью небольшой оболочки-скриптов-foo.
svn status | grep "^\!" | awk '{print $2}' | xargs svn del
Вот расстройство, в соответствии с просьбой:
- Выходом
svn status
по трубопроводу подают grep
grep
труб каждую строку, которая начинается с !
(The ^
в регулярном выражении означает начало строки , и «\» необходимо избегать специального значения !
)
awk
затем берет второй «аргумент» (так говорить .. это путь к файлу) из grep
и труб только это ...
xargs
который просто утилита для построения выполнения команд оболочки из стандартного ввода, который генерирует и запускает команду svn del your/file/here
Вы также можете использовать вариации на этой линии, чтобы сделать все виды полезных вещей с svn
, как рекурсивно добавлять файлы в репозиторий:
svn status | grep "^\?" | awk '{print $2}' | xargs svn add
Кроме того, я просто вспомнил, и хотел бы отметить, что это не будет работать, если у вас есть пробелы h или имена файлов. Я всегда забываю об этом, потому что никогда этого не делаю. Если у вас есть пробелы в ваших путей/имен файлов, используйте следующую вариацию на первом примере:
svn status | grep "^\!" | sed -e 's/? *//' | sed -e 's/ /\\ /g' | xargs svn del
(Там, наверное, более изящный способ сделать это, так что не стесняйтесь звонить в). В этом первом sed
берет первый символ пробела и любые (если есть) пробелы, которые следуют за ним, и удаляет их (в основном, обрезку). Затем второй вызов sed
заменяет все оставшиеся пространства \
, который является экранированным пространством, насколько это касается оболочки. Подумайте об этом, вы могли бы просто обернуть его котировками ...
Windows? Linux? – RedFilter
Ах, извините. Это OSX, но ответ ниже разработан. – 2009-08-20 19:17:28
Приложения не должны позволять людям умножать свои ошибки на 10000: P О, ужасы, которые у меня были, когда я подумал, что быстрая «замена всех» решит мои проблемы с рефакторингом :) – cwap