Jak mogę użyć, grep
aby wyświetlać tylko nazwy plików (bez dopasowań w linii) w systemie Linux?
Zwykle używam czegoś takiego:
find . -iname "*php" -exec grep -H myString {} \;
Jak mogę uzyskać nazwy plików (ze ścieżkami), ale bez dopasowań? Czy muszę używać xargs
? Nie widziałem sposobu, aby to zrobić na mojej grep
stronie podręcznika.
vim $(grep -rl Something app/)
Odpowiedzi:
grep -l
Może to zrobić standardowa opcja (czyli mała litera L).Ze standardu Unix :
W
-H
tym przypadku nie potrzebujesz również .źródło
grep -nrl "some text" .
gdy rekursywnie szukam tekstu w zestawie podfolderówZe strony podręcznika
grep(1)
:źródło
Do prostego wyszukiwania plików możesz użyć grep's
-l
i-r
opcji:Całe wyszukiwanie odbywa się przez grep. Oczywiście, jeśli musisz wybrać pliki z innym parametrem, znajdź właściwe rozwiązanie:
execdir
Opcja buduje każde polecenie grep za każdym katalogu, a Łączy nazewnictwo się tylko jedno polecenie (+
).źródło
Twoje pytanie Jak mogę uzyskać nazwy plików (ze ścieżkami)
Twój przykład składni znajdź. -iname "* php" -exec grep -H myString {} \;
Moja sugestia polecenia
Dane wyjściowe tego polecenia w moim systemie operacyjnym Linux:
Ponieważ potrzebujesz nazwy pliku ze ścieżką, ciesz się!
źródło