Pour un administrateur système, travailler avec des fichiers texte est un phénomène courant. Peut-être avoir besoin de trouver une section spécifique à partir de piles de fichiers journaux pour dépanner quelque chose? Ou, besoin de trouver le document qui contient rapidement des informations essentielles?
Dans le cas de Linux, il existe de nombreuses méthodes pour trouver des textes dans des fichiers. Il est possible d'utiliser à la fois des outils intégrés et des applications tierces. Découvrez comment trouver des textes dans des fichiers dans Linux.
Trouver du texte dans des fichiers
Selon le nombre de fichiers sur lesquels vous devez effectuer une recherche, il existe deux façons d'effectuer la recherche de texte: automatisé ou manuel. Si vous devez travailler avec quelques fichiers texte, la recherche manuelle est plus appropriée. Cependant, s'il y a des centaines de fichiers texte, la recherche automatisée est la plus efficace.
Pour une recherche automatisée, nous utiliserons Grep. Grep est préinstallé sur n'importe quelle distribution Linux. Quant à la recherche manuelle, tout éditeur de texte moderne fera le travail.
Trouver du texte dans des fichiers à l'aide de grep
Dans Linux, Grep est l'outil par défaut pour rechercher des textes. Son nom est dérivé de la commande ED G / RE / P qui signifie «Recherche globalement une expression régulière et des lignes correspondantes imprimées."Il est disponible sur n'importe quelle distribution Linux moderne.
Grep est un outil de ligne de commande. Sa structure de commande est la suivante.
$ grep
Comme le nom de Grep le suggère, le modèle à rechercher est décrit en utilisant une expression régulière. L'expression régulière est un type spécial de chaîne qui décrit un modèle à correspondre, localiser et gérer. Pour en savoir plus sur le grep et l'expression régulière, consultez en utilisant Grep et Egrep avec une expression régulière.
À des fins de démonstration, prenez un exemple de fichier texte. Dans cet exemple, téléchargez la licence publique générale GNU v3.0 Fichier texte.
Recherche de base
La façon fondamentale d'utiliser le grep est de rechercher une chaîne de base.
Jetez un œil à la commande grep suivante. Il recherchera le mot «GNU» dans le fichier texte.
$ grep "gnu" gpl-3.0.SMS
Pour afficher le numéro de ligne, utilisez le drapeau «-n».
$ grep -n «gnu» gpl-3.0.SMS
Pour effectuer une recherche insensible à la casse à l'aide de Grep, utilisez le drapeau «-I».
$ grep -ni «gnu» gpl-3.0.SMS
Vous ne voudrez peut-être pas voir les correspondances de recherche mais seulement le nom du fichier où le match s'est produit dans certaines situations. Pour imprimer uniquement le nom de fichier, utilisez le drapeau «-l». Ici, l'astérisque désigne d'utiliser tous les fichiers texte dans le répertoire actuel.
$ grep -l «gnu» *
Nous pouvons également tuer la sortie d'autres commandes vers Grep.
$ Cat GPL-3.0.txt | grep -n "gnu"
Expression régulière
Regex offre une façon intelligente de régler la recherche. Il a ses propres règles. Cependant, différentes applications et langages de programmation mettent en œuvre l'expression régulière différemment. Voici quelques exemples que vous pouvez utiliser avec Grep.
Pour définir que la chaîne se trouve au démarrage d'une ligne, utilisez le symbole Caret (^).
$ grep -n "^ gnu" gpl-3.0.SMS
Pour définir que la chaîne se trouve à la fin d'une ligne, utilisez le signe du dollar ($).
$ grep -n «à $» gpl-3.0.SMS
Pour décrire qu'il peut y avoir n'importe quel caractère à un certain emplacement du motif, utilisez le caractère de la période (.). Par exemple, l'expression «g.U "est valide s'il y a un caractère entre" g "et" u ".
$ grep -n “g.U ”gpl-3.0.SMS
Pour décrire qu'il peut y avoir un sous-ensemble de caractères à un emplacement particulier du motif, utilisez les supports ([]). Par exemple, l'expression «t [wo] o» dit que le match est valable pour «deux» et «trop» uniquement.
$ grep -n «t [wo] o» gpl-3.0.SMS
Expression régulière étendue
Comme son nom l'indique, une expression régulière étendue peut faire des choses plus complexes que les expressions régulières de base. Pour utiliser une expression régulière étendue avec Grep, vous devez utiliser le drapeau «-e».
$ grep -ne
Pour rechercher deux chaînes différentes, utilisez les opérateurs OR (|).
$ grep -ne «GNU | Général | Licence» GPL-3.0.SMS
Trouver du texte dans des fichiers
Vient maintenant la partie principale. Au lieu de dire manuellement à Grep le fichier pour effectuer la recherche, Grep peut le faire automatiquement. Dans la commande suivante, Grep utilisera tous les fichiers texte disponibles dans le répertoire actuel pour rechercher le modèle.
$ grep*
Si vous souhaitez Grep pour effectuer la recherche sur un autre répertoire, vous devez spécifier l'emplacement.
$ grep
S'il y a des dossiers, Grep ne les explore pas par défaut. Pour dire à Grep de rechercher récursivement, utilisez le drapeau «-r».
$ grep -nr
GUP grep
Si vous préférez travailler avec GUI mais que vous souhaitez toujours profiter des fonctionnalités de Grep, consultez SearchMonkey. C'est une solution frontale pour Grep. Le package est disponible sur presque toutes les principales distros Linux.
Trouver du texte dans des fichiers à l'aide de nano
GNU Nano est un éditeur de texte simple et puissant fourni avec n'importe quelle distribution Linux. Il a des fonctionnalités intégrées pour rechercher du texte dans un fichier texte.
Notez que dans cette méthode, vous devez ouvrir le fichier texte et rechercher manuellement. C'est faisable s'il n'y a qu'une poignée de fichiers texte avec lesquels travailler. S'il y a plus, l'utilisation de Grep est le choix le plus optimal.
Ouvrez le fichier texte dans Nano.
$ nano
Pour rechercher une correspondance de chaîne, appuyez sur «Ctrl + W». Après avoir tapé la chaîne à rechercher, appuyez sur «Entrée».
Trouver du texte dans des fichiers à l'aide de VIM
VIM est un éditeur de texte bien connu et réputé. C'est l'équivalent en ligne de commandement d'un éditeur de texte moderne. VIM est livré avec de nombreuses fonctionnalités avancées comme les plugins, les macros, la complétion automatique, les filtres, etc.
Semblable à Nano, VIM travaille avec un seul fichier à la fois. Si vous avez plusieurs fichiers texte, l'utilisation de Grep est la voie la plus optimale à suivre.
Pour rechercher dans un fichier texte, ouvrez-le d'abord dans VIM.
$ vim
Entrez la commande vim suivante et appuyez sur "Entrée".
$: /
Trouver du texte dans des fichiers à l'aide de Gnome Text Editor
L'éditeur de texte Gnome est l'éditeur de texte qui est livré avec le bureau Gnome. C'est un éditeur de texte simpliste avec toutes les fonctionnalités de base que vous attendez. C'est une belle alternative aux éditeurs de texte en ligne de commande.
Semblable à Nano et Vim, la même prudence s'applique à cette méthode. Si le nombre de fichiers texte est grand, alors vous feriez mieux de vous en tenir au grep.
Ouvrez le fichier texte dans l'éditeur de texte. Appuyez sur «Ctrl + F» pour faire apparaître la barre de recherche.
Recherchez du texte dans des fichiers à l'aide du code vs
Visual Studio Code est un puissant éditeur de texte avec des tonnes de fonctionnalités. Il est optimisé pour que les programmeurs soient utilisés comme s'il s'agissait d'un IDE à part entière. Il est disponible sur presque toutes les principales distros Linux.
Installez le package Snap du code Visual Studio.
$ sudo snap d'installation du code - Classique
Ouvrez le fichier texte dans le code vs. Appuyez sur «Ctrl + F» pour commencer à rechercher.
Dernières pensées
Il existe de nombreuses façons de rechercher du texte dans des fichiers. C'est une tâche facile à maîtriser. Il est fortement recommandé de maîtriser la commande GREP car il offre le plus de valeur en termes d'efficacité et de facilité d'utilisation.
Si vous préférez l'interface graphique, il existe de nombreux éditeurs de texte à choisir. Tout éditeur de texte moderne fournira l'option de recherche de texte.
Happy Computing!