2012-09-07 15 views
17

Mam folder z podfolderami wewnątrz, wszystkie mają wiele typów plików. Chcę wyszukać słowo wewnątrz pliku .css. Używam Windows 7 i mam grep.Znajdź ciąg w wielu plikach używając grep

Jak mogę używać grep do:

  1. Find wzór i wydrukować go
  2. Podaj nazwę pliku (i ścieżkę) jeśli wzór znaleziono

Odpowiedz

28

W rzeczywistości nie potrzebujesz find. Po prostu użyj:

grep -R --include=*.css -H pattern . 

to będzie recurse i szukać wszystkich * .css w podkatalogach, a -H pokaże nazwę pliku.

+0

co to kropka oznacza? – Leo92

+1

Nie ma problemu, kropka jest miejscem, z którego można rozpocząć odtwarzanie i reprezentuje bieżący katalog. – Bitwise

+1

Mam kilka pytań: 1. mogę użyć 'lub' do typu pliku '(txt | css)' 2.Jak mogę wyszukać nazwy plików i typy? – Leo92

0
find folder/ -name "*.css" |xargs grep "your-pattern"

Trzeba będzie zainstalować Cygwin aby to zrobić.

0

jeśli pliki, w których musimy szukać, mają wzór, możemy go użyć. Zastanówmy się, czy szukam wzoru "cardlayout" w plikach o nazwie chap1.lst chap2.lst i tak dalej. następnie polecenie

grep -e 'cardlayout' ` find . -name "chap??.lst"` 

nadzieja pomogłoby