Mam lokalną kopię svn, chcę wyszukać ciąg string some_string.
$ grep some_string * -r
lang/en:some_string=Some string
lang/.svn/en:some_string=Some string
Ale jeśli pójdziemy trochę dalej, wydaje się, że ukryte katalogi pierwszego poziomu są wykluczone:
$ cd lang && grep some_string * -r
en:some_string=Some string
Jak mogę usunąć ukryte katalogi svn z mojego wyjścia, a nie tylko z pierwszego poziomu głębi?
$ grep some_string * -r --which_option_here?
lang/en:some_string=Some string
Odpowiedzi:
Użyj
--exclude-dir
opcji, np .:Od
man grep
:Zauważ jednak, że ta
--exclude-dir
opcja jest dostępna tylko w GNU grep. Jeśligrep
nie obsługuje tego, może być konieczne użycie innego narzędzia, na przykład :źródło
find
wersję, jeśli twój grep nie obsługuje--exclude-dir
.--exclude-dir
, czy próbowałeś?Zwykle używam tego:
${e%\./}
usunie pierwszy,./
a następniegrep
usunie wszystko, co zaczyna się od kropki.źródło
e#
, tekst mówie%