Afficher les lignes avant et après le match via Grep

Show Lines Before After Match Via Grep



Grep a été largement utilisé dans les systèmes Linux pour travailler sur certains fichiers, rechercher un modèle spécifique et bien d'autres. Cette fois, nous utilisons la commande grep pour afficher les lignes avant et après le mot-clé correspondant utilisé dans un fichier spécifique. À cette fin, nous utiliserons les indicateurs -A, -B et -C tout au long de notre guide de didacticiel. Donc, vous devez effectuer chaque étape pour une meilleure compréhension. Assurez-vous que le système Linux Ubuntu 20.04 est installé.

Tout d'abord, vous devez ouvrir votre terminal de ligne de commande Linux pour commencer à travailler sur grep. Vous êtes actuellement dans le répertoire Home de votre système Ubuntu juste après l'ouverture du terminal de ligne de commande. Alors, essayez de répertorier tous les fichiers et dossiers du répertoire personnel de votre système Linux à l'aide de la commande ls ci-dessous, et vous obtiendrez tous. Vous pouvez voir, nous avons des fichiers texte et des dossiers qui y sont répertoriés.







ls



Exemple 01 : Utilisation de « -A » et « -B »

À partir des fichiers texte ci-dessus, nous en examinerons certains et essaierons d'y appliquer la commande grep. Ouvrons d'abord le fichier texte one.txt en utilisant la commande cat populaire ci-dessous :



$chatun.txt





Nous verrons d'abord certaines correspondances de mots spécifiques dans ce fichier texte en utilisant la commande grep comme ci-dessous. Nous recherchons le mot we dans le fichier texte one.txt en utilisant l'instruction grep. La sortie montre deux lignes du fichier texte contenant nous.

$saisirnous un.txt



Ainsi, dans cet exemple, nous afficherons les lignes avant et après la correspondance de mot spécifique dans certains fichiers texte. Donc, en utilisant le même fichier texte one.txt, nous avons fait correspondre le mot we tout en affichant les 3 lignes qui le précèdent comme ci-dessous. Le drapeau -B signifie avant. La sortie n'affiche que 2 lignes avant la ligne de mot spécifique car le fichier n'a pas plus de lignes avant la ligne d'un mot spécifique. Il montre également les lignes contenant ce mot spécifique.

$saisir-B3nous un.txt

Utilisons le même mot-clé we de ce fichier pour afficher les 3 lignes après la ligne contenant le mot we. Le drapeau -A présente After. La sortie n'affiche à nouveau que 2 lignes car il n'y a plus de lignes dans le fichier.

$saisir3nous un.txt

Alors, utilisons un nouveau mot-clé à rechercher et affichons les lignes ou les lignes avant et après la ligne dans laquelle il se trouve. Nous avons donc utilisé le mot can pour correspondre. Les numéros de ligne sont les mêmes dans ce cas. Les 3 lignes après le mot correspondant peuvent avoir été affichées ci-dessous à l'aide de la commande grep.

$saisir3peut-on.txt

Vous pouvez voir la sortie s'afficher avant les lignes d'un mot correspondant à l'aide du mot-clé can. En revanche, il n'affiche que deux lignes avant la ligne du mot correspondant car il n'y a plus de lignes avant.

$saisir-B3peut-on.txt

Exemple 02 : Utilisation de « -A » et « -B »

Prenons un autre fichier texte, two.txt, du répertoire personnel et affichons son contenu à l'aide de la commande cat ci-dessous.

$chatdeux.txt

Affichez 5 lignes avant le mot Most du fichier two.txt à l'aide de la commande grep. La sortie affiche 5 lignes avant que la ligne ne contienne un mot spécifique.

$saisir-B5La plupart des deux.txt

La commande grep pour afficher les 5 lignes après le mot Most du fichier texte two.txt a été donnée ci-dessous.

$saisir5La plupart des deux.txt

Modifions le mot-clé à rechercher. Nous utiliserons of comme mot-clé à associer cette fois. Afficher les 2 lignes avant le mot de du fichier texte two.txt peut être fait en utilisant la commande grep ci-dessous. La sortie affiche deux lignes pour le mot-clé de car il apparaît deux fois dans le fichier. Ainsi, la sortie contient plus de 2 lignes.

$saisir-B2de deux.txt

Maintenant, l'affichage des 2 lignes du fichier two.txt après la ligne qui contient le mot-clé de peut être fait en utilisant la commande ci-dessous. La sortie affiche à nouveau plus de 2 lignes.

$saisir2de deux.txt

Exemple 03 : Utilisation de « -C »

Un autre indicateur, -C a été utilisé pour afficher les lignes avant et après le mot correspondant. Affichez le contenu du fichier one.txt à l'aide de la commande cat.

$chatun.txt

Nous choisissons la société comme mot-clé à associer. La commande grep ci-dessous affichera les 2 lignes avant et 2 lignes après la ligne qui contient le mot société. La sortie affiche une ligne avant la ligne de mot spécifique et 2 lignes après.

$saisir-C2société one.txt

Voyons le contenu du fichier two.txt en utilisant la commande cat ci-dessous.

$chatdeux.txt

Dans cette illustration, nous utilisons des poèmes comme mot-clé pour faire correspondre. Alors, exécutez la commande ci-dessous pour cela. La sortie affiche deux lignes avant et deux lignes après le mot correspondant.

$saisir-C2poèmes deux.txt

Utilisons un mot-clé supplémentaire du fichier two.txt à faire correspondre. Nous consommons la nature comme mot-clé cette fois. Alors, essayez la commande ci-dessous tout en utilisant -C comme indicateur ayant la nature du mot-clé du fichier two.txt. Cette fois, la sortie a plus de deux lignes dans la sortie. Comme le fichier contient le mot nature plus d'une fois, c'est la raison derrière cela. Le mot-clé nature, qui vient en premier, a deux lignes avant et deux lignes après. Alors que le second correspond au même mot-clé, nature a deux lignes avant, mais il n'y a pas de lignes après car il se trouve à la dernière ligne du fichier.

$saisir-C2poèmes deux.txt

Conclusion

Nous réussissons à afficher les lignes avant et après le mot spécifique tout en utilisant l'instruction grep.