Mam kilka plików .html w katalogu. Chcę przejrzeć każdy plik i dopasować wzór (MD5). Wszystko to jest dość łatwe. Problem polega na tym, że muszę wiedzieć, w jakim pliku znaleziono dopasowanie.
cat *.html | grep 75447A831E943724DD2DE9959E72EE31
Zwraca tylko treść strony HTML, w której znaleziono dopasowanie, ale nie mówi mi, w którym pliku został znaleziony. Jak mogę uzyskać grep, aby pokazał mi nazwę pliku, w którym znaleziono moje dopasowanie?
command-line
grep
Być moim przyjacielem
źródło
źródło
Odpowiedzi:
źródło
-H
nie jest konieczne.cat
.cat
oznacza konkatenat. Jeśli połączysz wszystkie pliki razem przed ich przekazaniemgrep
,grep
zobacz tylko jeden duży standardowy plik wejściowy i nie możesz (bez robienia wróżenia) zwrócić ci żadnych informacji o pojedynczych plikach. Widzieć?. Cyrus, co powiesz na wyjaśnienie tego w odpowiedzi?Korzystam z tego cały czas, aby szukać plików zawierających ciąg, POWTARZAJĄCY się w katalogu (co oznacza, przechodzenie przez dowolny podfolder podrzędny)
grep -Ril "yoursearchtermhere"
R
jest wyszukiwanie rekurencyjne (następujące dowiązania symboliczne)i
sprawi, że wielkość liter będzie niewrażliwal
służy tylko do wyświetlenia nazwy plików.więc odpowiedź na twoje pytanie
grep -l '75447A831E943724DD2DE9959E72EE31' *.html
wystarczy, ale możesz po prostugrep -Ril '75447A831E943724DD2DE9959E72EE31'
wyszukać ten ciąg bez rozróżniania wielkości liter w dowolnym pliku w dowolnym podfolderzeźródło
stdin
( grep: ostrzeżenie: rekursywne wyszukiwanie stdin , cokolwiek rekurencyjne wejście stdin oznaczałoby :-). Innymi słowy:grep -Ril 'texttofind' *
grep -RiH 'pattern'
pokazuje nazwę pliku i dopasowaną linięMożesz tego spróbować
źródło
Alternatywa dla
Wykonanie powyższego spowoduje wyszukiwanie rekurencyjne w folderze i podfolderach i wydrukowanie ścieżki do pliku ...
źródło
Odpowiedź wysłane przez Cyrusa jest absolutnie właściwe i jest właściwym sposobem TM to zrobić ze
grep
jeśli tylko trzeba znaleźć pliki . Gdy nazwy plików wymagają dodatkowego parsowania lub operacji na dopasowanych nazwach plików, możemy skorzystać zwhile
pętli zif
instrukcją. Oto przykład, w którym lista nazw plików pochodzi z bardzo często używanej strukturyfind
+while
do bezpiecznego parsowania nazw plików.źródło
grep
„s--include
flagę.