Исключить скрытые подкаталоги из 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 

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 удалит все, что начинается с точки.

  • отображать пользователей, которые вошли в систему с даты, используя последние
  • ls | Работа grep не работает с ls --color
  • Выделение целых чисел, заключенных в круглые скобки
  • Grep только в файлах, находящихся в определенных папках
  • Вывод `java -version` не соответствует grep или awk
  • Как я могу grep две вещи, где есть опция -w?
  • Как создать список символов, встречающихся перед определенным символом, только в строках, содержащих другой определенный символ с использованием регулярного выражения?
  • Исключение вложенных каталогов с помощью grep
  • Как выполнить grep на FTP?
  • как я могу напечатать строку N и Mth выше или ниже соответствующей строки с помощью grep?
  • Поиск слова и его замена во всем файле с помощью Egrep
  • Перенаправить вывод с несколькими командами
  • Linux и Unix - лучшая ОС в мире.