Jak znaleźć wszystkie pliki z określonym tekstem za pomocą Linux Shell
- 1895
- 403
- Pani Janina Cieśla
Cel
Poniższy artykuł zawiera kilka przydatnych wskazówek na temat znalezienia wszystkich plików w dowolnym konkretnym katalogu lub całym systemie plików zawierających dowolne określone słowo lub ciąg.
Trudność
ŁATWY
Konwencje
- # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą
sudo
Komenda - $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny
Przykłady
Znajdź wszystkie pliki z określonym ciągiem nie-rekurencyjnym
Pierwszy przykład polecenia poszukiwał ciągu rozciągać się
we wszystkich plikach wewnątrz /itp/
katalog, wykluczając wszelkie podwodne:
# grep -s stretch/etc/*/etc/OS-Rurease: Pretten_name = "Debian Gnu/Linux 9 (rozciąganie)"/etc/os-emerease: version = "9 (stretch)"
-S
Opcja GREP będzie tłumiła komunikaty o błędach na temat nieistniejących lub nieczytelnych plików. Wyjście pokazuje nazwy plików, a także drukuje rzeczywistą linię zawierającą żądany ciąg.
Znajdź wszystkie pliki z określonym ciągiem rekurencyjnym
Powyższe polecenie pominęło wszystkie podwodne. Wyszukiwanie rekurencyjnie oznacza również przemierzanie wszystkich substaterejnych. Następujące polecenie Linux będzie wyszukiwać ciąg rozciągać się
we wszystkich plikach wewnątrz /itp/
Katalog, w tym wszystkie podwodnione:
# grep -r rozciąganie/etc/*/etc/apt/źródła.Lista:# Deb CDROM: [Testowanie Debian GNU/Linux _stretch_-Oficjalna migawka AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/Etc/Apt/APT/źródła/źródła.Lista: #DEB CDROM: [Testowanie Debian GNU/Linux _stretch_-Oficjalna migawka AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/Etc/Apt/Apt/źródła.Lista: Deb http: // ftp.au.Debian.org/debian/stretch main/etc/apt/źródła.Lista: Deb-src http: // ftp.au.Debian.org/debian/stretch main/etc/apt/źródła.Lista: Deb http: // bezpieczeństwo.Debian.Org/Debian-Security Stretch/Aktualizacje główne/etc/apt/źródła.Lista: Deb-src http: // bezpieczeństwo.Debian.Org/debian-security Stretch/Aktualizacje Main/etc/Dictionaries-Common/Words: Backstretch/etc/Dictionaries-Common/Words: Backstretch's/etc/Dictionaries-Common/Words: Backstretches/Etc/Dictionaries-Common/Words: Homestretch/Words: Homestretch/ ETC/Dictionaries-Common/Words: Homestretch's/etc/Dictionaries-common/Words: Homestretches/etc/Dictionaries-common/Words: wyciąga/etc/Dictionaries-common/Words: wyciągnięte/etc/dictionaries-common/słowa ETC/Dictionaries-common/Words: wyciąganie/etc/słownik-common/słowa: stretch/etc/słownik-common/słowa: stretch's/etc/dictionaries-common/słów: rozciągnięte/etc/dictionaries-common/słowa: strepeting/elmeni ETC/Dictionaries-common/Words: nosza/etc/słownik-common/słowa: nosze/etc/słowniki-common/słów: rozciąganie/etc/słowniki-common/słowa: elastyk/etc/dictionaries-common/słowa: elastyk/ itp./Słowniki-common/słowa:rozciąganie/etc/słowniki-common/słowa: elastyczne/etc/grub.D/00_HEADER: TAEL_IMAGE -M stretch 'Make_System_Path_relative_to_its_root "$ Grub_background"'/etc/Os-Release: Pretty_name = "Debian GNU/Linux 9 (stretch)"/etc/OS-Rlease: wersja = "9 (rozciąganie)"
Wyszukaj wszystkie pliki zawierające określone słowo
Powyższe Grep
Przykład polecenia wymienia wszystkie pliki zawierające ciąg rozciągać się
. Co oznacza linie z rozciąga się
, rozciągnięty
itp. są również pokazane. Użyj Grepa -w
Opcja pokazania tylko konkretnego słowa:
# GREP -RW stretch/etc/*/etc/apt/źródła.Lista:# Deb CDROM: [Testowanie Debian GNU/Linux _stretch_-Oficjalna migawka AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/Etc/Apt/APT/źródła/źródła.Lista: #DEB CDROM: [Testowanie Debian GNU/Linux _stretch_-Oficjalna migawka AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/Etc/Apt/Apt/źródła.Lista: Deb http: // ftp.au.Debian.org/debian/stretch main/etc/apt/źródła.Lista: Deb-src http: // ftp.au.Debian.org/debian/stretch main/etc/apt/źródła.Lista: Deb http: // bezpieczeństwo.Debian.Org/Debian-Security Stretch/Aktualizacje główne/etc/apt/źródła.Lista: Deb-src http: // bezpieczeństwo.Debian.Org/Debian-Security Stretch/Aktualizacje Main/etc/Dictionaries-Common/Words: Stretch/Etc/Dictionaries-Common/Words: Stretch's/Etc/Grub.D/00_HEADER: TAEL_IMAGE -M stretch 'Make_System_Path_relative_to_its_root "$ Grub_background"'/etc/Os-Release: Pretty_name = "Debian GNU/Linux 9 (stretch)"/etc/OS-Rlease: wersja = "9 (rozciąganie)"
Wypisz tylko nazwy plików zawierających określony tekst
Powyższe polecenia mogą wytworzyć niepotrzebne wyjście. Następny przykład wyświetli tylko wszystkie nazwy plików zawierające ciąg rozciągać się
w /itp/
Directory rekurencyjnie:
# grep -rl stretch/etc/*/etc/apt/źródła.Lista/etc/słownik-common/słowa/etc/grub.d/00_header/etc/OS-Rulease
Wykonaj wyszukiwanie wrażliwe na przypadki
Wszystkie wyszukiwania są domyślnie wrażliwe na literę, co oznacza, że każde wyszukiwanie ciągu rozciągać się
wyświetli tylko pliki zawierające dokładne wielkie i małe dopasowanie. Za pomocą Grep's -I
Opcja polecenie będzie również wymienić dowolne wiersze zawierające Rozciągać się
, ROZCIĄGAĆ SIĘ
, Rozciągać się
itp., stąd przeprowadzanie wyszukiwania wrażliwych na przypadki.
# grep -ril stretch/etc/*/etc/apt/źródła.Lista/etc/słownik-common/default.Hash/etc/Dictionaries-common/Words/etc/Grub.d/00_header/etc/OS-Rulease
Uwzględnij lub wyklucz określone nazwy plików z wyszukiwania
Za pomocą Grep
polecenie można również dołączyć tylko określone pliki w ramach wyszukiwania. Na przykład chcielibyśmy wyszukać określony tekst/ciąg w plikach konfiguracyjnych z rozszerzeniem .conf
. Następny przykład znajdzie wszystkie pliki z rozszerzeniem .conf
w /itp
katalog zawierający ciąg grzmotnąć
:
# grep -ril bash /etc /*.conf lub # grep -ril --include = \*.conf bash /etc /* /etc /adduser.conf
Podobnie, używając --wykluczać
Opcja możemy wykluczyć dowolne określone nazwy plików:
# grep -ril --exclude = \*.CONF BASH/ETC/*/ETC/alternative/view/etc/alternative/vim/etc/alternative/vi/etc/alternative/vimdiff/etc/alternatywy/rvim/etc/alternatywy/ex/etc/alternatywy/rview/etc/etc/etc/etc/etc /grzmotnąć.bashrc /etc /bash_complecja.D/Grub/etc/cron.codziennie/apt-compat/etc/cron.codziennie/exim4-baza/etc/słownik.hash/etc/dictionaries-common/słów/etc/inputrc/etc/passwd/etc/passwd-/etc/profilu/etc/powtórki/etc/skel/.profil/etc/skel/.bashrc/etc/skel/.bash_logout
Wyklucz określone katalogi z wyszukiwania
Tak samo jak w przypadku plików GREP może również wykluczyć określone katalogi z wyszukiwania. Używać --Wykluczona
Opcja wykluczenia katalogu z wyszukiwania. Poniższy przykład wyszukiwania znajdzie wszystkie pliki zawierające ciąg rozciągać się
w /itp
katalog i wyklucz /etc/grub.D
Z wyszukiwania:
# grep-exclude-dir =/etc/grub.d -rwl stretch/etc/*/etc/apt/źródła.Lista/etc/słownik-common/słów/etc/OS-Rulease
Wyświetl numer linii zawierający wyszukiwany ciąg
Używając -N
Opcja GREP dostarczy również informacji dotyczących numeru linii, w którym znaleziono określony ciąg:
# grep -rni bash /etc /*.conf /etc /adduser.Conf: 6: dshell =/bin/bash
Znajdź wszystkie pliki nie zawierające określonego ciągu
Ostatni przykład użyje -v
Opcja wymienienia wszystkich plików nie zawierających określonego słowa kluczowego. Na przykład następujące wyszukiwanie będzie wymienić wszystkie pliki w środku /itp/
katalog, który nie zawiera ciągów rozciągać się
:
# grep -rlv stretch /etc /*
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Podstawowe polecenia Linux
- Jak znaleźć ciąg lub tekst w pliku w Linux
- Jak poprawnie grep do tekstu w skryptach bash
- Znajdź wszystkie pliki zawierające określony tekst
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Jak wydrukować drzewo katalogu za pomocą Linux
- Przydatne przykłady i wskazówki dotyczące linii poleceń Bash - część 4
- Przydatne przykłady i sztuczki
- « Jak włączyć i wyłączyć moduł zwijania PHP z Apache na Ubuntu Linux
- Debian apt-get Jessie źródła.lista »