Comment rechercher des chaînes dans des fichiers comme dans Windows sans chercher monkey?

41

J'utilise Ubuntu sur VMWare mais je ne peux pas me connecter à Internet à cause des restrictions de sécurité.

Je me demandais s'il y avait un moyen de rechercher des chaînes dans le terminal et de trouver la ligne sur laquelle se trouve la chaîne dans le fichier.

utilisateur138056
la source
1
Parlez-vous grepou quelque chose de plus avancé?
muru
Avez-vous cherché d'abord.
xxbinxx

Réponses:

56

Il y a presque trop d'options à énumérer

grep -r 'pattern_to_match' directory_to_search

Affiche le nom du fichier et la ligne complète correspondant au motif.

Panthère
la source
18

Le meilleur que j'utilise est la commande grep avec les options -ri (recherche récursive sans tenir compte de la casse):

$ grep -r <text_pattern_to_search> directory_or_path_to_search

options qui pourraient vous être utiles:

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

pour des informations approfondies, vous pouvez le faire grep --helpou man grepdans un terminal linux.

À votre santé

xxbinxx
la source
7


Si vous voulez trouver uniquement le numéro de ligne où se trouve la piqûre dans le fichier, utilisez ceci:

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

Si vous voulez trouver le numéro de ligne et aussi afficher le nom complet de la ligne où se trouve la chaîne, utilisez ceci:

grep -n 'string_To_Find' directory/file_Name

Et si vous voulez seulement trouver le nom complet de la ligne où se trouve la chaîne, utilisez ceci:

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