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

13

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 wyszukiwania ciągów znaków przez terminal i znajdowania linii, w której znajduje się ciąg w pliku.

    
zadawane user138056 18.08.2014, 20:51
źródło

3 odpowiedzi

22

Istnieje prawie zbyt wiele opcji do wyświetlenia

grep -r 'pattern_to_match' directory_to_search

Wypisze nazwę pliku i pełny wiersz pasujący do wzorca.

    
odpowiedział Panther 18.08.2014, 20:58
źródło
11

Najlepiej używać polecenia grep z opcjami -ri (wyszukiwanie rekursywne i niewrażliwe na wielkość 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.
    
odpowiedział xxbinxx 22.08.2014, 07:59
źródło
5


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

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

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

grep -n 'string_To_Find' directory/file_Name

A jeśli chcesz tylko znaleźć pełną nazwę linii, w której napis jest, użyj tego:

grep -r 'string_To_Find' directory/file_Name
    
odpowiedział αғsнιη 22.08.2014, 08:28
źródło

Przeczytaj inne pytania na temat tagów