Comment trouver tous les fichiers avec un texte spécifique à l'aide de Shell Linux
- 2842
- 37
- Maxence Arnaud
Objectif
L'article suivant fournit quelques conseils utiles sur la façon de trouver tous les fichiers dans un répertoire spécifique ou un système de fichier entier contenant un mot ou une chaîne spécifique.
Difficulté
FACILE
Conventions
- # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de
Sudo
commande - $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier
Exemples
Trouver tous les fichiers avec une chaîne spécifique de manière non réalisée
Le premier exemple de commande recherchera une chaîne extensible
Dans tous les fichiers à l'intérieur /etc/
Répertoire en excluant les sous-répertoires:
# grep -s stretch / etc / * / etc / os-release: pretty_name = "debian gnu / linux 9 (stretch)" / etc / os-release: version = "9 (stretch)"
Le -s
L'option GREP supprimera les messages d'erreur sur les fichiers inexistants ou illisibles. La sortie affiche des noms de fichiers ainsi que l'impression de la ligne réelle contenant une chaîne demandée.
Trouver tous les fichiers avec une chaîne spécifique récursivement
La commande ci-dessus a omis tous les sous-répertoires. Rechercher récursivement signifie également traverser tous les sous-répertoires. La commande Linux suivante recherchera une chaîne extensible
Dans tous les fichiers à l'intérieur /etc/
Répertoire, y compris tous les sous-répertoires:
# grep -r stret / etc / * / etc / apt / sources.Liste: # Deb Cdrom: [Test de Debian GNU / Linux _StRetch_ - Instantané officiel AMD64 NETINST BINALLE-1 20170109-05: 56] / Stretch Main / etc / APT / Sources.Liste: #DEB CDROM: [Test de Debian GNU / Linux _StRetch_ - Snaphot officiel AMD64 NETINST BINALY-1 20170109-05: 56] / Stretch Main / etc / APT / Sources.Liste: deb http: // ftp.au.Debian.Org / Debian / Stretch Main / etc / APT / Sources.Liste: deb-src http: // ftp.au.Debian.Org / Debian / Stretch Main / etc / APT / Sources.Liste: Deb http: // Security.Debian.Org / Debian-Security Stretch / Mise à jour Main / etc / APT / Sources.Liste: Deb-Src http: // Security.Debian.org / debian-security stretch / mises à jour Main / etc / dictionnaires-commun / mots: backStretch / etc / dictionnaires-commun / mots: backStretch's / etc / dictionnaires-commun / mots: backStretches / etc / dictionnaires-commun / words: homestretch / etc / dictionnaires-commun / mots: homestretch's / etc / dictionnaires-commun / mots: homestretches / etc / dictionnaires-commun / mots: extérieur / etc / dictionnaires-commun / mots: tendance / etc / dictionnaires-commun / words: sorttchs / etc / dictionnaires-commun / mots: dépassement / etc / dictionnaires-commun / mots: stretch / etc / dictionnaires-commun / mots: stretch's / etc / dictionnaires-commun / word: strethed / etc / dictionnaires-commun / words: sagers etc / dictionnaires-commun / mots: civière / etc / dictionnaires-commun / mots: streethers / etc / dictionnaires-commun / mots: étirement / etc / dictionnaires-communs / mots: extensible / etc / dictionnaires-communs / mots: stretlist / etc / dictionnaires-communs / mots:étirement / etc / dictionnaires-commun / mots: extensible / etc / grub.D / 00_Header: background_image -m stretch 'Make_system_path_relative_to_its_root "$ grub_background"' / etc / os-release: pretty_name = "debian gnu / linux 9 (stretch)" / etc / os-release: version = "9 (stretch)"
Recherchez tous les fichiers contenant un mot spécifique
Ce qui précède grep
L'exemple de commande répertorie tous les fichiers contenant une chaîne extensible
. Ce qui signifie les lignes avec tronçon
, étiré
etc. sont également montrés. Utilisez des grep -w
Option pour afficher uniquement un mot spécifique:
# grep -rw stretch / etc / * / etc / apt / sources.Liste: # Deb Cdrom: [Test de Debian GNU / Linux _StRetch_ - Instantané officiel AMD64 NETINST BINALLE-1 20170109-05: 56] / Stretch Main / etc / APT / Sources.Liste: #DEB CDROM: [Test de Debian GNU / Linux _StRetch_ - Snaphot officiel AMD64 NETINST BINALY-1 20170109-05: 56] / Stretch Main / etc / APT / Sources.Liste: deb http: // ftp.au.Debian.Org / Debian / Stretch Main / etc / APT / Sources.Liste: deb-src http: // ftp.au.Debian.Org / Debian / Stretch Main / etc / APT / Sources.Liste: Deb http: // Security.Debian.Org / Debian-Security Stretch / Mise à jour Main / etc / APT / Sources.Liste: Deb-Src http: // Security.Debian.Org / Debian-Security Stretch / Mise à jour principale / etc / dictionnaires-commun / mots: Stretch / etc / dictionnaires-commun / mots: stretch / etc / grub.D / 00_Header: background_image -m stretch 'Make_system_path_relative_to_its_root "$ grub_background"' / etc / os-release: pretty_name = "debian gnu / linux 9 (stretch)" / etc / os-release: version = "9 (stretch)"
Liste uniquement des noms de fichiers contenant un texte spécifique
Les commandes ci-dessus peuvent produire une sortie inutile. L'exemple suivant affichera uniquement tous les noms de fichiers contenant une chaîne extensible
dans /etc/
Répertoire récursivement:
# grep -rl stret / etc / * / etc / apt / sources.liste / etc / dictionnaires-commun / mots / etc / grub.d / 00_header / etc / os-libération
Effectuer une recherche insensible à la cas
Toutes les recherches sont par défaut sensibles à la casse, ce qui signifie que toute recherche d'une chaîne extensible
affichera uniquement des fichiers contenant la correspondance en majuscules et minuscules exactes. En utilisant Grep -je
Option La commande répertorie également toutes les lignes contenant Extensible
, EXTENSIBLE
, Extensible
etc., Par conséquent, pour effectuer une recherche insensible à la casse.
# grep -ril stret / etc / * / etc / apt / sources.liste / etc / dictionnaires-commun / par défaut.hachage / etc / dictionnaires-commun / mots / etc / grub.d / 00_header / etc / os-libération
Inclure ou exclure des noms de fichiers spécifiques de la recherche
En utilisant grep
Commande Il est également possible d'inclure uniquement des fichiers spécifiques dans le cadre de la recherche. Par exemple, nous souhaitons seulement rechercher un texte / chaîne spécifique dans des fichiers de configuration avec extension .confli
. L'exemple suivant trouvera tous les fichiers avec extension .confli
dans /etc
répertoire contenant une chaîne frapper
:
# grep -ril bash / etc / *.conf ou # grep -ril --include = \ *.conf.confli
De même, en utilisant --exclure
Option Nous pouvons exclure les noms de fichiers spécifiques:
# grep -ril --exclude = \ *.conf. /frapper.bashrc / etc / bash_completion.d / grub / etc / cron.quotidien / apt-compat / etc / cron.quotidien / exim4-base / etc / dictionnaires-commun / par défaut.hash / etc / dictionnaires-commun / words / etc / inputrc / etc / passwd / etc / passwd- / etc / profil / etc / shells / etc / skel /.profil / etc / skel /.bashrc / etc / skel /.bash_logout
Exclure les répertoires spécifiques de la recherche
Identique à des fichiers que Grep peut également exclure les répertoires spécifiques de la recherche. Utiliser --exclure
Option pour exclure le répertoire de la recherche. L'exemple de recherche suivant trouvera tous les fichiers contenant une chaîne extensible
dans /etc
répertoire et exclure / etc / grub.d
De la recherche:
# grep --exclude-dir = / etc / grub.D -rwl stretch / etc / * / etc / apt / sources.liste / etc / dictionnaires-commun / mots / etc / os-libération
Afficher un numéro de ligne contenant une chaîne recherchée
En utilisant -n
L'option Grep fournira également des informations concernant un numéro de ligne où la chaîne spécifique a été trouvée:
# grep -rni bash / etc / *.conf / etc / addUser.conf: 6: dshell = / bin / bash
Trouver tous les fichiers ne contenant pas de chaîne spécifique
Le dernier exemple utilisera -V
Option pour répertorier tous les fichiers ne contenant pas de mot-clé spécifique. Par exemple, la recherche suivante répertorie tous les fichiers dans /etc/
Répertoire qui ne contient pas de chaîne extensible
:
# grep -rlv stretch / etc / *
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
- Commandes Linux de base
- Comment trouver une chaîne ou un texte dans un fichier sur Linux
- Comment correctement grep pour le texte dans les scripts bash
- Trouver tous les fichiers contenant du texte spécifique
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Comment imprimer l'arbre du répertoire à l'aide de Linux
- Exemples de lignes de commande de commande de bash utile - Partie 4
- Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
- « Comment activer et désactiver le module PHP Curl avec Apache sur Ubuntu Linux
- Debian apt-get Jessie Sources.liste »