Como pesquisar seqüências de caracteres dentro de arquivos como no Windows sem pesquisar macaco?

41

Estou usando o Ubuntu no VMWare, mas não consigo me conectar à Internet devido a restrições de segurança.

Eu queria saber se havia uma maneira de procurar seqüências de caracteres através do terminal e descobrir em qual linha a cadeia está localizada dentro do arquivo.

user138056
fonte
1
Você está falando grepou algo mais avançado?
muru 18/08/14
Você já procurou por ele primeiro.
Xxbinxx

Respostas:

56

Existem muitas opções para listar

grep -r 'pattern_to_match' directory_to_search

Produzirá o nome do arquivo e a linha completa correspondente ao padrão.

Pantera
fonte
18

O melhor que eu uso é o comando grep com as opções -ri (pesquisa recursiva e sem distinção entre maiúsculas e minúsculas):

$ grep -r <text_pattern_to_search> directory_or_path_to_search

opções que podem ser úteis para você:

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

para informações detalhadas, você pode fazer grep --helpou man grepno terminal linux.

Felicidades

xxbinxx
fonte
7


Se você deseja encontrar apenas o número da linha em que a picada está localizada no arquivo, use este:

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

Se você deseja encontrar o número da linha e também gerar o nome completo da linha em que a string está localizada na linha, use isto:

grep -n 'string_To_Find' directory/file_Name

E se você deseja apenas encontrar o nome completo da linha onde está a string, use o seguinte:

grep -r 'string_To_Find' directory/file_Name
αғsнιη
fonte