Maison  >  Article  >  Opération et maintenance  >  Programmation Shell : comment utiliser la commande grep ?

Programmation Shell : comment utiliser la commande grep ?

PHP中文网
PHP中文网original
2017-06-20 11:12:492550parcourir

Avant d'apprendre les expressions régulières, vous devez d'abord le préciser et le garder à l'esprit, c'est-à-dire :

Sous Linux, les caractères génériques Il est interprété par le shell, tandis que les expressions régulières sont interprétées par la commande. Ne confondez pas les deux. Souviens-toi! ! !

Il existe généralement trois outils/commandes de traitement de texte : grep, sed et awk, qui peuvent tous les trois interpréter les expressions régulières. Ci-dessous, je vais vous présenter comment utiliser la commande grep.

1. Utilisez la commande grep pour rechercher le contenu du fichier

Les commandes grep et egrep peuvent rechercher un modèle de caractère spécifique, également appelé expressions régulières, dans le contenu d'un ou plusieurs fichiers. Un motif peut être un seul caractère, une chaîne, un mot ou une phrase.

Une expression régulière est un modèle qui décrit un ensemble de chaînes. La construction d'expressions régulières est calquée sur des expressions mathématiques, en utilisant des opérateurs pour combiner des expressions plus petites en une nouvelle expression. Une expression régulière peut être soit des littéraux de texte brut, soit des caractères spéciaux utilisés pour générer des modèles. Afin de définir davantage un modèle de recherche, la commande grep prend en charge les métacaractères d'expression régulière suivants, également appelés caractères génériques.

ps : Le langage d'expression régulière se compose de deux types de caractères de base : les caractères de texte littéraux (normaux) et les métacaractères. Les métacaractères donnent de la puissance de traitement aux expressions régulières. Les soi-disant métacaractères font référence à ces caractères spéciaux ayant une signification particulière dans les expressions régulières, qui peuvent être utilisés pour spécifier le modèle d'apparence de leurs caractères principaux (c'est-à-dire les caractères devant les métacaractères) dans l'objet cible.

c* : correspondra à 0 caractères ou plus c

. : correspondra à n'importe quel et un seul caractère (nouvelle ligne (sauf les caractères)

[xyz] : correspondra à n'importe quel caractère entre crochets

[^xyz] : correspondra à n'importe quel caractère sans les crochets Tous les caractères entre crochets

^ : verrouille le début de la ligne

$ : verrouille la fin de la ligne

Dans les expressions régulières de base, les métacaractères tels que *, +, {}, | et () ont perdu leur signification d'origine, si vous souhaitez restaurer leur signification d'origine, ils doivent être précédés d'une barre oblique inverse, telle que *. , +, etc

La commande grep est utilisée pour rechercher un modèle spécifique dans chaque fichier ou sur la sortie standard. Lors de l'utilisation de la commande grep, chaque ligne contenant un modèle de caractère spécifié sera imprimée à l'écran. Le format de syntaxe de la commande grep est le suivant :

fichier de modèle d'option grep. name

Parmi elles, les options peuvent modifier la méthode de recherche de la commande grep À l'exception de l'option -w, toutes les autres options peuvent être utilisées dans les commandes egrep et fgrep. Les options courantes pour la commande grep sont les suivantes :

-c (count) : répertorie uniquement le nombre de lignes contenant le motif

- i (ignorer) : ignorer la casse des lettres dans le modèle

-l (liste) : répertorier les noms de fichiers avec les lignes correspondantes

- n : match Liste le numéro de ligne devant la ligne

-v : Liste les lignes qui ne correspondent pas au motif (inverse)

-w : Changer l'expression La formule est recherchée comme un mot complet, et les lignes partiellement correspondantes sont ignorées

-q : mode silencieux, pas de sortie, vous devez utiliser $. ? pour déterminer si l'exécution est réussie, c'est-à-dire s'il y a un filtre vers le contenu souhaité

-A n : Si la correspondance est réussie, imprimez la ligne correspondante et le n suivant lignes ensemble

-B n : Si la correspondance est réussie, imprimez ensemble la ligne correspondante et les n lignes avant et après celle-ci

- C n : Si la correspondance est réussie, imprimez ensemble la ligne correspondante et les n lignes avant et après. Imprimez-la

ps : Si plusieurs fichiers sont recherchés, les résultats du grep La commande affiche uniquement les noms de fichiers correspondant au modèle trouvé dans le fichier ;

Si vous recherchez un seul fichier, les résultats de la commande grep afficheront chaque ligne contenant un modèle correspondant.

Ce qui précède est la méthode de base pour utiliser la commande grep. Mais parfois, une simple expression régulière ne peut pas localiser le contenu que vous souhaitez rechercher. Si vous souhaitez rechercher des lignes de données qui satisfont à la fois au mode un et au mode deux, la commande egrep peut s'avérer utile.

Le format de syntaxe de la commande egrep est le même que celui de la commande grep. Mais la commande egrep est utilisée pour rechercher un modèle spécifique dans le contenu d'un ou plusieurs fichiers à l'aide des métacaractères des expressions régulières étendues. Les métacaractères d'expression régulière étendus incluent les métacaractères d'expression régulière utilisés dans la commande grep, et ajoutent également quelques métacaractères supplémentaires, à peu près les suivants :

+ : correspond à un ou plusieurs caractères principaux

a|b : Correspond à a ou b

(RE) : Correspond à l'expression régulière entre parenthèses Expression RE

Ci-dessous, j'utiliserai quelques exemples de base pour améliorer votre compréhension de l'utilisation des commandes grep et egrep. Puisque toutes les options egrep de la commande grep peuvent être utilisées (egrep est plus puissant), par souci de commodité, j'utiliserai la commande egrep pour démontrer à tout le monde :

Exemple 1 : Afficher le fichier /etc/ passwd contient des lignes racine

Exemple 2 : Sortie /etc Toute ligne contenant bash dans /passwd doit également afficher le contenu des deux lignes au-dessus et en dessous de la ligne

Exemple 3 : Afficher combien de lignes dans /etc/passwd contiennent nologin

Exemple 4 : Affichez les lignes dans /etc/passwd qui contiennent la racine et affichez les numéros de ligne ensemble

Exemple 5 :

Nouveaux utilisateurs abominables, abominables, anomie , atomisez, écrivez des expressions régulières pour les faire correspondre

Exemple 6 : Créer de nouveaux utilisateurs Alex213sb, Wpq2222b, yH438PIG, egon666, egonFiltrer les lignes où le nom d'utilisateur est composé de lettres+chiffres+lettres

Exemple 7 : Afficher tous les noms de fichiers contenant racine dans le répertoire /etc

Exemple 8 : Filtrer tous les commentaires et toutes les lignes vides dans /etc/ssh/sshd_config

Les exemples ci-dessus ne sont qu'une petite partie. Tant que vous pratiquez avec diligence, vous le ferez. soyez très rapide. Vous pourrez maîtriser l'utilisation de la commande grep^^

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn