Как искать строки внутри файлов, как в Windows, без поиска обезьяны?

41

Я использую Ubuntu на VMWare, но не могу подключиться к Интернету из-за ограничений безопасности.

Мне было интересно, есть ли способ поиска строк через терминал и найти, на какой строке находится строка в файле.

user138056
источник
1
Вы говорите о grepчем-то более продвинутом?
Муру
Вы искали это первым.
xxbinxx

Ответы:

56

Есть слишком много вариантов для перечисления

grep -r 'pattern_to_match' directory_to_search

Выводит имя файла и полную строку, соответствующие шаблону.

пантера
источник
18

Лучше всего использовать команду grep с параметрами -ri (рекурсивный поиск и поиск без учета регистра):

$ grep -r <text_pattern_to_search> directory_or_path_to_search

варианты, которые могут быть полезны для вас:

    -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.

для глубокой информации вы можете сделать grep --helpили man grepв терминале Linux.

ура

xxbinxx
источник
7


Если вы хотите найти только номер строки, в которой находится строчка в файле, используйте это:

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

Если вы хотите найти номер строки, а также вывести полное имя строки, где строка находится в строке, используйте это:

grep -n 'string_To_Find' directory/file_Name

И если вы хотите найти только полное имя строки, где находится строка, используйте это:

grep -r 'string_To_Find' directory/file_Name
αғsнιη
источник