GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver une chaîne dans un fichier sous Linux

Parfois, vous devrez peut-être rechercher un mot particulier ou une chaîne dans un fichier. Pour ce faire, presque tous les éditeurs de texte ont une implémentation graphique pour vous aider. Mais pour les utilisateurs de Linux, il est beaucoup plus productif et pratique d'effectuer ces recherches à partir de la ligne de commande.

En fait, Linux dispose d'un utilitaire de ligne de commande puissant et pratique - la commande grep à cet effet. Grâce à cela, vous pouvez rechercher une chaîne particulière non seulement dans un fichier, mais dans plusieurs fichiers pour une recherche plus complète.

Cependant, avant de pouvoir utiliser la commande grep, vous devez d'abord connaître son fonctionnement et ses syntaxes. Et donc, pour vous aider, nous avons élaboré un guide détaillé sur l'utilisation de la commande grep pour vous aider à trouver des chaînes dans un fichier sous Linux. Non seulement cela, mais nous vous montrerons également comment rechercher des chaînes dans des fichiers via l'éditeur de texte en ligne de commande et l'éditeur de texte GUI.

Remarque :Pour ce didacticiel, nous avons créé deux fichiers texte de démonstration :demofile.txt et demofile02.txt. Nous utiliserons la commande grep pour rechercher des chaînes dans ces fichiers. Voici un aperçu du contenu de ces deux fichiers afin que vous sachiez comment fonctionnent les commandes.

Contenu de demofile.txt :

This is a demo file that I have created for demonstration purposes.
This contains a bunch of words to create sentences that finally end with a period.
This is for the grep example.

Contenu du demofile02.txt :

This is another demo file that I'll use for this demonstration.
This one is similar to the last one as it contains three lines with some words.
This second file will help to provide some diversified examples.

Rechercher des chaînes dans un fichier via la ligne de commande (méthode GREP)

GREP est l'abréviation de Global Regular Expression Print. C'est "Global" car il peut rechercher tout votre système Linux. "Regular Expression" est ce que nous appelons le modèle de recherche de texte que nous utiliserons avec la commande. Et "Imprimer" signifie qu'il imprimera les résultats de la recherche dès qu'il trouvera une correspondance basée sur l'expression régulière fournie.

Maintenant que vous avez une idée de ce qu'est la commande grep, voyons comment nous pouvons l'utiliser. Voici la syntaxe d'utilisation de la commande grep pour rechercher une chaîne dans un fichier :

$ grep string filename

Vous devrez remplacer l'expression "chaîne" par "l'expression régulière" que vous souhaitez utiliser et le "nom de fichier" par le nom du fichier dans lequel vous souhaitez rechercher la chaîne.

#1. Utiliser GREP pour trouver une chaîne dans un fichier

Donc, disons que si vous voulez rechercher le mot "demonstration" dans le fichier "demofile.txt", vous devrez utiliser cette commande :

$ grep demonstration demofile.txt

Ce qui donne la sortie :

Comme vous pouvez le voir, la commande récupère la ligne entière contenant la chaîne fournie. Si la chaîne spécifiée apparaît sur plusieurs lignes, elle les imprimera toutes. Voyons si cela fonctionne en recherchant la chaîne "This" dans le fichier "demofile.txt".

$ grep This demofile.txt

Et le résultat est :

Notez comment vous avez utilisé la chaîne "this" en premier, et elle n'a rien imprimé. Ce n'est que lorsque vous entrez "Ceci" que vous obtenez une correspondance. En tant que tel, vous devez vous rappeler que la commande grep est sensible à la casse.

Pour ignorer la casse, vous devrez saisir cette commande à la place :

$ grep -i this demofile.txt

Comme vous pouvez le voir maintenant, même si la chaîne fournie est "ceci", la commande correspond à "ceci" et imprime cette réponse.

#2. Utiliser GREP pour trouver la même chaîne dans plusieurs fichiers

Pour rechercher dans plusieurs fichiers la chaîne fournie, il vous suffit d'ajouter la commande avec tous les noms de fichiers.

Voici un exemple. Ici, nous recherchons la chaîne "words" dans les fichiers "demofile.txt" et "demofile02.txt":

$ grep words demofile.txt demofile02.txt

Et le résultat est :

Comme vous pouvez le voir, la commande grep vous montrera non seulement le résultat correspondant, mais également une étiquette pratique de quel fichier il provient.

#3. Utilisation de GREP pour rechercher plusieurs chaînes dans plusieurs fichiers

Vous pouvez également utiliser grep pour rechercher plusieurs chaînes dans un ou plusieurs fichiers. Voici la syntaxe que vous devrez utiliser :

$ grep -E 'pattern1|pattern2|pattern3|...' filename1 filename2 filename3 ...

L'option -E que nous avons entrée traite le modèle suivant comme une expression régulière étendue, ce qui nous permet de rechercher plusieurs chaînes.

Utilisons maintenant ce que nous avons appris pour rechercher les chaînes "file" et "words" dans les deux fichiers :"demofile.txt" et "demofile02.txt":

$ grep -E 'file|word' demofile.txt demofile02.txt

Et le résultat est :

#4. Trucs et astuces pour utiliser la commande GREP pour rechercher des chaînes

Malgré sa simplicité générale, la commande grep est extrêmement puissante. Voici quelques façons d'utiliser la commande grep pour les recherches de chaînes avancées.

Par exemple, saviez-vous que vous pouvez utiliser la commande grep avec des caractères génériques ? Considérons cette commande :

$ grep word demofile*

Ce qui donne la sortie :

Comme vous pouvez le voir, la commande a recherché et affiche maintenant les résultats pour les deux fichiers "demofile.txt" et "demofile02.txt". C'est parce que nous avons utilisé le caractère générique astérisque (*) utilisé pour représenter une ou plusieurs occurrences de n'importe quel caractère.

Pour plus d'informations sur les différents types de caractères génériques et leur utilisation, vous pouvez consulter cet article :Les caractères génériques sous Linux expliqués avec 10 exemples.

Ensuite, la commande grep prend également en charge des tonnes d'options de commande. Nous en avons déjà vu deux :

  • -i :utilisé pour ignorer la casse.
  • -E :utilisé pour traiter la chaîne suivante comme une expression régulière étendue.

Il existe de nombreuses autres options de commande grep telles que :

  • -r :effectue une recherche récursive.
  • -c :compte le nombre total de fois où la chaîne est apparue.
  • -n :imprime le numéro de ligne où la chaîne s'est produite.
  • -o :imprime uniquement la chaîne correspondante et n'imprime pas la ligne entière.

Tout ce dont nous avons discuté jusqu'à présent devrait suffire à vous aider à rechercher des chaînes dans des fichiers. Cependant, si vous souhaitez maîtriser la commande GREP, nous vous recommandons de consulter ces deux articles :

  • Utilisation de la commande GREP sous Linux avec des exemples 
  • Cinq principaux usages de la commande GREP sous Linux 

Rechercher des chaînes dans un fichier via la ligne de commande (à l'aide d'éditeurs de texte en ligne de commande)

La commande grep est un outil puissant qui peut vous aider à effectuer des recherches avancées pour faire correspondre des chaînes avec plusieurs fichiers et répertoires sur votre PC Linux. Cependant, si le fichier est déjà ouvert dans un éditeur de texte en ligne de commande, il n'est pas nécessaire de quitter l'éditeur de fichier et d'utiliser la commande grep.

En fait, la plupart des éditeurs de texte en ligne de commande sont déjà dotés d'une fonctionnalité de recherche intégrée.

Maintenant, il est au-delà de la portée de ce didacticiel de couvrir chaque éditeur de texte en ligne de commande et comment trouver des chaînes dans un fichier ouvert dans cet éditeur de texte. En tant que tel, nous examinerons les deux éditeurs de texte en ligne de commande les plus populaires que vous êtes obligé d'utiliser :

Comment trouver une chaîne de texte dans nano ?

Supposons que le fichier soit ouvert dans l'éditeur de texte nano. Dans ce cas, tout ce que vous avez à faire est d'appuyer sur Ctrl+W, et vous trouverez une nouvelle invite pour saisir la chaîne.

Une fois cela fait, appuyez sur Entrée et le curseur atterrira sur le premier caractère de la première occurrence de la chaîne recherchée. Vous pouvez continuer à appuyer sur Entrée pour passer aux autres instances de chaîne, le cas échéant.

Comment trouver une chaîne de texte dans vim ?

Si vous utilisez l'éditeur de texte vim, vous pouvez saisir :/ suivi de la chaîne que vous souhaitez rechercher, puis appuyer sur Entrée. Semblable à avant, il placera le curseur sur la première occurrence de la chaîne recherchée. Ici aussi, vous pouvez continuer à appuyer sur Entrée pour passer aux autres instances de la chaîne.

Rechercher des chaînes dans un fichier via la ligne de commande (méthode GUI)

Il existe même une méthode graphique pour rechercher des chaînes dans un fichier. En substance, il est similaire à la fonction "Rechercher et remplacer" que vous voyez sur Microsoft Word. cependant, cela variera en fonction de l'éditeur de texte GUI que vous utilisez.

Maintenant, comme vous le savez, il existe des centaines d'éditeurs de texte, et il n'est pas pratique de tous les couvrir ici. Cependant, ils fonctionnent tous de la même manière, vous n'aurez donc aucun problème à travailler avec les autres une fois que vous saurez comment l'un d'entre eux fonctionne.

Pour ce didacticiel, nous utiliserons l'éditeur de texte par défaut fourni avec Ubuntu, appelé "Editeur de texte".

Comme vous pouvez le voir sur l'image, nous avons ouvert le demofile.txt sur l'éditeur. Maintenant, nous cliquons sur le menu déroulant, qui révèle les options pour "Rechercher" et "Rechercher et remplacer", que nous pouvons utiliser pour trouver toutes les chaînes dans le fichier ouvert.

Conclusion

Cela nous amène donc à la fin de ce court tutoriel sur la recherche de chaînes dans un fichier sous Linux. Nous espérons que vous trouverez cela utile et qu'il vous a aidé à devenir plus productif dans la recherche de chaînes spécifiques sur votre système Linux.

Si vous avez des questions, laissez-nous un commentaire, et nous ne manquerons pas de vous aider avec vos questions.

Si vous débutez avec Linux, n'oubliez pas de consulter notre série Apprendre Linux. Il est rempli de tonnes de didacticiels, de procédures et de guides géniaux, conçus pour les débutants et les utilisateurs plus expérimentés pour vous aider à devenir un véritable utilisateur expérimenté de Linux.


Linux
  1. Comment renommer un fichier sous Linux ?

  2. Commande grep Linux

  3. Comment trouver des lignes contenant une chaîne sous Linux

  4. Comment grep \n dans le fichier

  5. Comment récupérer un fichier supprimé sous Linux ?

Comment trouver le nom d'hôte sous Linux

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment créer un lien symbolique vers un fichier sous Linux

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment trouver la ou les lignes les plus longues dans un fichier sous Linux