Исключить скрытые подкаталоги из grep -r

У меня есть локальная копия svn, я хочу сделать поиск в строке some_string.

$ grep some_string * -r lang/en:some_string=Some string lang/.svn/en:some_string=Some string 

Но если идти немного дальше, кажется, что скрытые каталоги первого уровня исключены:

 $ cd lang && grep some_string * -r en:some_string=Some string 

Как удалить скрытые директивы svn из моего вывода, а не только с первого уровня глубины?

 $ grep some_string * -r --which_option_here? lang/en:some_string=Some string 

  • Какова цель этих специальных символов в команде sed?
  • Помощь с использованием кавычек в поиске grep
  • Поиск подстроки в файлах в подкаталогах с помощью одной встроенной команды?
  • Найти рекурсивный поиск Grep
  • Как найти слово с частью окружающего контекста с помощью grep?
  • Оцените время, потраченное на проект Git с помощью grep
  • Использование пустой строки в качестве контекста «group-separator» для grep
  • Греп остальной линии ... после матча
  • 2 Solutions collect form web for “Исключить скрытые подкаталоги из grep -r”

    Используйте параметр --exclude-dir , например:

     grep -r --exclude-dir='.*' some_string 

    От man grep :

     --exclude-dir=DIR Exclude directories matching the pattern DIR from recursive searches. 

    Обратите внимание, что опция --exclude-dir доступна только в GNU grep. Если ваш grep не поддерживает его, вам может понадобиться использовать другой инструмент, например, найти:

     find . \( -name .svn -prune \) -o -name "*" -exec grep -H "some_string" {} 2>/dev/null \; 

    Обычно я использую это:

     for e in $(find . -maxdepth 1 -type d); do echo ${e#\./}; done | grep -v '^\.' 

    ${e%\./} удалит первый ./ а затем grep удалит все, что начинается с точки.

    Interesting Posts

    Насколько хороша поддержка процессоров Intel Skylake Core M?

    Создание apt-оффлайн-пакета для использования на многих машинах

    Хостинг на FreeBSD

    dd не может видеть раздел, но cfdisk и GParted могут

    "-bash: warning: setlocale: LC_ALL: не может изменить локаль (en_US.UTF-8)"

    Как я могу ограничить размер загруженного файла в wget?

    Как заставить VLC напрямую играть в iso-файл?

    Как сканировать каталог с пробелом в его имени с помощью maldet

    Предотвращение уже запущенного процесса для записи в существующий файл

    Как перезагрузить USB-устройство после безопасного извлечения?

    используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию

    Как сохранить выскочку установленной – всегда, не заменяйте sysvinit?

    Где MacOS Finder хранит эту информацию (происхождение файла, который был отправлен мне)?

    Не удается разрешить сервер CentOS 6.2 по имени из OS X

    Как искать ссылки на строки в указанном месте?

    Linux и Unix - лучшая ОС в мире.