Jak wyszukiwać ciągi znaków w plikach jak w systemie Windows bez małp wyszukiwania?

41

Używam Ubuntu na VMWare, ale nie mogę połączyć się z Internetem z powodu ograniczeń bezpieczeństwa.

Zastanawiałem się, czy istnieje sposób, aby wyszukać ciągi przez terminal i znaleźć linię, w której ciąg znajduje się w pliku.

użytkownik138056
źródło
1
Mówisz o grepczymś bardziej zaawansowanym?
muru
Najpierw go szukałeś.
xxbinxx,

Odpowiedzi:

56

Istnieje prawie zbyt wiele opcji do wyświetlenia

grep -r 'pattern_to_match' directory_to_search

Wyświetli nazwę pliku i pełną linię pasującą do wzorca.

Pantera
źródło
18

Najlepsze, czego używam, to polecenie grep z opcjami -ri (wyszukiwanie rekurencyjne i bez rozróżniania wielkości liter):

$ grep -r <text_pattern_to_search> directory_or_path_to_search

opcje, które mogą Ci się przydać:

    -i - case insensitive
    -r, --recursive  like --directories=recurse
    -R, --dereference-recursive  likewise, but follow all symlinks
      --include=FILE_PATTERN  search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN  skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN  directories that match PATTERN will be skipped.

dla głębokich informacji możesz zrobić grep --helplub man grepw terminalu Linux.

Twoje zdrowie

xxbinxx
źródło
7


Jeśli chcesz znaleźć tylko numer linii, w której żądło znajduje się w pliku, użyj tego:

grep -n '/string_To_Find/=' directory/file_Name

Jeśli chcesz znaleźć numer linii, a także wypisać pełną nazwę linii, w której znajduje się łańcuch, użyj tego:

grep -n 'string_To_Find' directory/file_Name

A jeśli chcesz tylko znaleźć pełną nazwę wiersza tam, gdzie jest ciąg, użyj tego:

grep -r 'string_To_Find' directory/file_Name
αғsнιη
źródło