Исключите .svn каталоги из grep [дубликат]

Общая проблема с выполнением преобразований, которые это направление - то, что репозитории Мерзавца могут содержать больше, чем просто линейная история изменений как Подверсия, ожидала бы. Несколько родословных с расходящимися историями и частыми фиксациями слияния все возможны, который не может быть легко представлен в репозитории Подверсии.

Для простых случаев, где у Вас действительно есть линейная история в Вашем репозитории Мерзавца, можно использовать git-svn dcommit для продвижения партии до в других отношениях пустого репозитория Подверсии.

188
задан Tunaki 28 August 2015 в 03:17
поделиться

5 ответов

Если у вас есть GNU Grep, он должен работать следующим образом:

grep --exclude-dir=".svn"

Если вы находитесь в системе Unix без GNU Grep, попробуйте следующее:

grep -R "whatever you like" *|grep -v "\.svn/*" 
267
ответ дан 23 November 2019 в 05:43
поделиться

Если вы используете ack («лучший grep»), он обработает это автоматически (а также сделает много других умных вещей!). Это стоит проверить.

36
ответ дан 23 November 2019 в 05:43
поделиться

Я думаю, что опция рекурсии --exclude - это то, что вы ищете.

-1
ответ дан 23 November 2019 в 05:43
поделиться
grep --exclude-dir=".svn"

works because the name ".svn" is rather unique. But this might fail on a more generalized name.

grep --exclude-dir="work"

is not bulletproof, if you have "/home/user/work" and "/home/user/stuff/work" it will skip both. It is not possible to define "/*/work/*" to restrict the exclusion to only the former folder name. As far as I could experiment, in GNU grep the simple --exclude won't exclude directories.

2
ответ дан 23 November 2019 в 05:43
поделиться

Два grep помогут:

  1. Первый grep получит все.
  2. Второй grep будет использовать вывод первого grep как вход (через конвейер). Используя флаг -v, grep выберет строки, которые НЕ соответствуют условиям поиска. Вуаля. У вас останутся все выходные данные из первого grep, которые не содержат .svn в пути к файлу.

    -v, --invert-match Инвертировать смысл соответствия, чтобы выбрать несовпадающие строки.

     grep the_text_you_want_to_search_for * | grep -v.svn 
     
1
ответ дан 23 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: