Jak grep i zwracasz tylko pasującą linię? tzn. ścieżka / nazwa pliku jest pomijana w wynikach.
W tym przypadku chcę zajrzeć do wszystkich plików .bar w bieżącym katalogu, szukając terminu FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Jak grep i zwracasz tylko pasującą linię? tzn. ścieżka / nazwa pliku jest pomijana w wynikach.
W tym przypadku chcę zajrzeć do wszystkich plików .bar w bieżącym katalogu, szukając terminu FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Odpowiedzi:
Nie trzeba find
. Jeśli szukasz tylko wzorca w określonym katalogu, powinno to wystarczyć:
grep -hn FOO /your/path/*.bar
Gdzie -h
jest parametr, aby ukryć nazwę pliku, ponieważ man grep
:
-h, --no-nazwa_pliku
Pomiń prefiks nazw plików na wyjściu. Jest to ustawienie domyślne, gdy do wyszukiwania jest tylko jeden plik (lub tylko standardowe wejście).
Pamiętaj, że korzystałeś
-H, - z nazwą pliku
Wydrukuj nazwę pliku dla każdego dopasowania. Jest to ustawienie domyślne, gdy istnieje więcej niż jeden plik do przeszukania.
alias grep
. Aby pominąć alias, wpisz\grep ...