Comment trouver du texte dans des fichiers sous Linux

How Find Text Files Linux



Pour un administrateur système, travailler avec des fichiers texte est un phénomène courant. Peut-être avez-vous besoin de trouver une section spécifique dans des piles de fichiers journaux pour résoudre quelque chose ? Ou besoin de trouver rapidement le document contenant les informations essentielles ?

Dans le cas de Linux, il existe de nombreuses méthodes pour rechercher des textes dans des fichiers. C'est possible en utilisant à la fois des outils intégrés et des applications tierces. Découvrez comment trouver des textes dans des fichiers sous Linux.







Recherche de texte dans des fichiers

Selon le nombre de fichiers sur lesquels vous devez effectuer une recherche, il existe deux manières d'effectuer la recherche de texte : automatisée ou manuelle. Si vous devez travailler avec quelques fichiers texte, la recherche manuelle est plus appropriée. Cependant, s'il existe des centaines de fichiers texte, la recherche automatisée est la plus efficace.



Pour la recherche automatisée, nous utiliserons grep. Grep est pré-installé sur n'importe quelle distribution Linux. En ce qui concerne la recherche manuelle, n'importe quel éditeur de texte moderne fera le travail.



Rechercher du texte dans des fichiers à l'aide de grep

Sous Linux, grep est l'outil par défaut pour la recherche de textes. Son nom est dérivé de la commande ed g/re/p qui signifie rechercher globalement une expression régulière et imprimer les lignes correspondantes. Il est disponible sur n'importe quelle distribution Linux moderne.





Grep est un outil en ligne de commande. Sa structure de commandement est la suivante.

$saisir <option> <expression régulière> <chemin du fichier>

Comme le nom de grep l'indique, le motif à rechercher est décrit à l'aide d'une expression régulière. L'expression régulière est un type spécial de chaîne qui décrit un modèle à rechercher, localiser et gérer. Pour en savoir plus sur grep et les expressions régulières, consultez utiliser grep et egrep avec une expression régulière .



À des fins de démonstration, récupérez un exemple de fichier texte. Dans cet exemple, téléchargez le Fichier texte de la licence publique générale GNU v3.0 .

Recherche de base

La manière fondamentale d'utiliser 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.

$saisir 'GNOU'gpl-3.0.SMS

Pour afficher le numéro de ligne, utilisez l'indicateur -n.

$saisir -nGNU gpl-3.0.SMS

Pour effectuer une recherche insensible à la casse à l'aide de grep, utilisez l'indicateur -i.

$saisir -nignu gpl-3.0.SMS

Vous ne voudrez peut-être pas voir les correspondances de recherche, mais uniquement le nom du fichier où la correspondance s'est produite dans certaines situations. Pour imprimer uniquement le nom de fichier, utilisez l'indicateur -l. Ici, l'astérisque indique d'utiliser tous les fichiers texte du répertoire courant.

$saisir -lgnou*

Nous pouvons également rediriger la sortie d'autres commandes vers grep.

$chatgpl-3.0.SMS| saisir -nGNOU

Expression régulière

Regex offre un moyen intelligent d'affiner la recherche. Il a ses propres règles. Cependant, différentes applications et langages de programmation implémentent différemment l'expression régulière. Voici quelques exemples que vous pouvez utiliser avec grep.

Pour définir que la chaîne doit être trouvée au début d'une ligne, utilisez le symbole caret (^).

$saisir -n^ GNU gpl-3.0.SMS

Pour définir que la chaîne se trouve en fin de ligne, utilisez le signe dollar ($).

$saisir -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 point (.). Par exemple, l'expression G.U est valide s'il y a un caractère entre G et U.

$saisir -nG.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 crochets ([]). Par exemple, l'expression t[wo]o indique que la correspondance est valide pour deux et trop seulement.

$saisir -nt[]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 l'indicateur -E.

$saisir -nE <regex_étendu> <déposer>

Pour rechercher deux chaînes différentes, utilisez les opérateurs OU (|).

$saisir -nEGNOU|général|Licence gpl-3.0.SMS

Recherche de texte dans des fichiers

Vient maintenant la partie principale. Au lieu de dire manuellement à grep le fichier sur lequel 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.

$saisir <expression régulière> *

Si vous souhaitez que grep effectue la recherche dans un autre répertoire, vous devez alors spécifier l'emplacement.

$saisir <expression régulière> <chemin_répertoire>

S'il y a des dossiers, grep ne les explore pas par défaut. Pour indiquer à grep de rechercher de manière récursive, utilisez l'indicateur -R.

$saisir -nR <expression régulière> <chemin_répertoire>

Grip GUI

Si vous préférez travailler avec l'interface graphique 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 distributions Linux.

Rechercher 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 en a plus, alors l'utilisation de grep est le choix le plus optimal.

Ouvrez le fichier texte dans nano.

$nano <chemin du fichier>

Pour rechercher une correspondance de chaîne, appuyez sur Ctrl + W. Après avoir tapé la chaîne à rechercher, appuyez sur Entrée.

Rechercher 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 commande d'un éditeur de texte moderne. Vim est livré avec de nombreuses fonctionnalités avancées telles que des plugins, des macros, l'auto-complétion, des filtres, etc.

Semblable à nano, Vim fonctionne avec un seul fichier à la fois. Si vous avez plusieurs fichiers texte, l'utilisation de grep est la solution la plus optimale.

Pour rechercher dans un fichier texte, ouvrez-le d'abord dans Vim.

$je suis venu <chemin du fichier>

Entrez la commande Vim suivante et appuyez sur Entrée.

$:/<terme de recherche>

Rechercher du texte dans des fichiers à l'aide de l'éditeur de texte GNOME

L'éditeur de texte GNOME est l'éditeur de texte fourni avec le bureau GNOME. C'est un éditeur de texte simpliste avec toutes les fonctionnalités de base que vous attendez. C'est une bonne 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 important, vous feriez mieux de vous en tenir à grep.

Ouvrez le fichier texte dans l'éditeur de texte. Appuyez sur Ctrl + F pour faire apparaître la barre de recherche.

Rechercher du texte dans des fichiers à l'aide de VS Code

Visual Studio Code est un éditeur de texte puissant 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 distributions Linux.

Installez le package d'accrochage Visual Studio Code.

$sudose casserinstallercode--classique

Ouvrez le fichier texte dans VS Code. Appuyez sur Ctrl + F pour lancer la recherche.

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 elle offre le plus de valeur en termes d'efficacité et de facilité d'utilisation.

Si vous préférez l'interface graphique, vous avez le choix entre de nombreux éditeurs de texte. Tout éditeur de texte moderne fournira l'option de recherche de texte.

Bon calcul !