1. Fonction
La commande grep dans le système Linux est un puissant outil de recherche de texte. Elle peut utiliser des expressions régulières pour rechercher du texte et imprimer les lignes correspondantes. Le nom complet de grep est Global Regular Expression Print, ce qui signifie la version globale de l'expression régulière. Ses autorisations d'utilisation sont destinées à tous les utilisateurs.
2. Format
grep [options]
3. Paramètres principaux
[options] Paramètres principaux :
-c : Seul le nombre de lignes correspondantes est affiché.
-I : Insensible à la casse (applicable uniquement aux caractères uniques).
-h : n'affiche pas les noms de fichiers lors de l'interrogation de plusieurs fichiers.
-l : lors de l'interrogation de plusieurs fichiers, seuls les noms de fichiers contenant des caractères correspondants seront affichés.
-n : Afficher les lignes et les numéros de ligne correspondants.
-s : n'affiche pas les messages d'erreur qui n'existent pas ou qui n'ont pas de texte correspondant.
-v : Afficher toutes les lignes qui ne contiennent pas de texte correspondant.
Paramètres principaux de l'expression régulière du modèle :
: Ignorer la signification originale des caractères spéciaux dans l'expression régulière.
^ : correspond à la ligne de départ de l'expression régulière.
$ : correspond à la ligne de fin de l'expression régulière.
< : Commencez par la ligne correspondant à l'expression régulière.
> : jusqu'à la fin de la ligne correspondant à l'expression régulière.
[ ] : Un seul caractère, tel que [A], c'est-à-dire A répond aux exigences.
[ - ] : plage, telle que [A-Z], c'est-à-dire A, B, C à Z répondent tous aux exigences.
. : Tous les personnages uniques.
* : Il y a des caractères, et la longueur peut être 0.
4. Un exemple simple utilisant la commande grep
$ grep 'test' d*
Afficher toutes les lignes contenant test dans les fichiers commençant par d.
$ grep 'test' aa bb cc
Affiche les lignes correspondant au test dans les fichiers aa, bb, cc.
$ grep '[a-z]{5}' aa
Affiche toutes les lignes contenant des chaînes dont chacune comporte au moins 5 caractères minuscules consécutifs.
$ grep 'w(es)t.*1′ aa
Si west correspond, es est stocké en mémoire et marqué comme 1, puis recherche n'importe quel nombre de caractères ( . *), ces caractères sont suivis d'un autre es(1), et la ligne s'affiche une fois trouvée. Si vous utilisez egrep ou grep -E, il n'est pas nécessaire de s'échapper avec le signe "", écrivez-le simplement directement sous la forme 'w(es)t.*1'.
Commande 5.grep utilisant des exemples complexes
Supposons que vous recherchiez des fichiers avec la chaîne 'magic' dans le répertoire '/usr/src/Linux/Doc' :
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt :* Comment activer la clé magique SysRQ ?
sysrq.txt :* Comment utiliser la clé magique SysRQ ? Clé magique SysRQ ?
Le fichier 'sysrp.txt' contient cette chaîne et discute de la fonction de SysRQ.
Par défaut, 'grep' recherche uniquement le répertoire courant. S'il y a de nombreux sous-répertoires dans ce répertoire, 'grep' les listera comme ceci :
grep: sound: Est un répertoire
Cela peut rendre la sortie de 'grep' difficile à lire. Il y a deux solutions ici :
Demander explicitement de rechercher des sous-répertoires : grep -r
ou ignorer les sous-répertoires : grep -d skip
S'il y a beaucoup de résultats, vous peut le diriger vers 'less' pour le lire :
$ grep magic /usr/src/Linux/Documentation/* | less
De cette façon, vous pouvez le lire plus facilement.
Une chose à noter est que vous devez fournir une méthode de filtrage de fichiers (utilisez * pour rechercher tous les fichiers). Si vous oubliez, 'grep' attendra que le programme soit interrompu. Si vous rencontrez ce problème, appuyez sur
Il y a quelques paramètres de ligne de commande intéressants ci-dessous :
fichiers de modèles grep -i : recherchez sans tenir compte de la casse. La valeur par défaut est sensible à la casse,
fichiers de modèles grep -l : seuls les noms de fichiers correspondants sont répertoriés,
fichiers de modèles grep -L : les noms de fichiers sans correspondance sont répertoriés,
grep -w fichiers de modèles : ne correspondent qu'au mot entier, pas à une partie de la chaîne (comme faire correspondre "magique", pas "magique"),
grep -C fichiers de modèles numériques : correspondent respectivement au contexte Afficher [ number] lignes,
fichiers grep pattern1 | pattern2 : afficher les lignes correspondant à pattern1 ou pattern2,
grep pattern1 files grep pattern2 : afficher les lignes correspondant à la fois à pattern1 et pattern2.
les fichiers de modèles grep -n peuvent afficher les informations sur le numéro de ligne
les fichiers de modèles grep -c peuvent trouver le nombre total de lignes
Il existe également des symboles spéciaux pour la recherche :
< et > marquent respectivement le début et la fin des mots.
Par exemple :
grep man * correspondra à 'Batman', 'manic', 'man', etc.,
grep ' grep ' '^' : signifie que la chaîne correspondante est au début de la ligne, '$' : signifie que la chaîne correspondante est à la fin de la ligne, Liste d'utilisation des commandes Grep 1. Paramètres : -I : Ignorer la casse -c : Imprimer le nombre de lignes correspondantes -l : Rechercher les fichiers contenant Match -v : Rechercher les lignes qui ne contiennent pas de correspondances -n : Imprimer les lignes et les étiquettes de ligne qui contiennent des correspondances RE (expression régulière). ) Ignorer la signification originale des caractères spéciaux dans l'expression régulière ^ Faire correspondre la ligne de début de l'expression régulière $ Faire correspondre la ligne de fin de l'expression régulière < Commencez par la ligne correspondant à l'expression régulière > à la fin de la ligne qui correspond à l'expression régulière [ ] un seul caractère tel que [A] signifie que A répond aux exigences [ - ] plage ; [A-Z] signifie que A, B, C à Z répondent tous aux exigences Tous les caractères simples * Tous les caractères, la longueur peut être 0 Exemple 3. 🎜>
root::0:root mail::6:root # more size.txt | grep -i 'b1..*3' -i : ignorer la casse b124230 b103303 B103303 # plus size.txt | -iv 'b1..*3' -v : Ne trouve aucune correspondance Les lignes b034325 a081016 m7187998 m7282064 a022021 a061 048 m9324822 a013386 b044525 m8987131 B081016 M45678 BA Dc2345 # plus size.txt | grep -in 'b1..*3' 1:b124230 9:b103303 15:B103303 # grep '$' /etc/init.d/nfs.server | wc -l 128 # grep ' $' /etc/init.d/nfs.server | wc -l ignore La signification originale des caractères spéciaux dans les expressions régulières 15 # grep '$' /etc/init.d /nfs.server case "$1" dans >/tmp/sharetab.$$ [ "x$fstype" != xnfs ] &&
echo "$patht$rest$fstypet$optst$desc" >>/tmp/sharetab.$$ /usr/bin/touch -r /etc/ dfs/sharetab /tmp/sharetab.$$ /usr/bin/mv -f /tmp/sharetab.$$ /etc/dfs/sharetab if [ -f /etc/ dfs/dfstab ] && /usr/bin/egrep -v '^[ ]*(#|$)' if [ $startnfsd -eq 0 -a -f /etc/rmmount.conf ] && if [ $startnfsd -ne 0 ]; then elif [ ! -n "$_INIT_RUN_LEVEL" ]; then while [ $wtime -gt 0 ]; 🎜>
wtime=`expr $wtime - 1`
if [ $wtime -eq 0 ]; then
echo "Utilisation : $0 { start | stop }"
# plus size.txt
le fichier de test
ce sont des fichiers
La fin
# grep 'le' size.txt
le fichier de test
ce sont des fichiers
# grep ' le fichier de test ce sont des fichiers # grep '>' size.txt le fichier de test # grep ' le fichier de test # grep '<[Tt]he> size.txt le fichier de test =============== =================== ================================ ==== 1, Introduction Un outil de recherche de texte polyvalent utilisant des expressions régulières. Cette commande php?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag"> est à l'origine un éditeur de ligne ed. A php?name=%C3%FC%C1%EE" onclick="tagshow(event)" class="t_tag">Command/Filter : g/re/p -- global - expression régulière - imprimer. Format de base modèle grep [fichier...] (1) chaîne de recherche grep [nom de fichier] (2)grep expression régulière [nom du fichier] Rechercher toutes les occurrences de motif dans le fichier. Le motif peut être soit une chaîne à rechercher, soit une expression régulière. Remarque : il est préférable d'utiliser double. guillemets lors de la saisie de la chaîne à rechercher/et lors de l'utilisation d'expressions régulières pour la correspondance de modèles, faites attention à l'utilisation de guillemets simples 2, option grep -c Afficher uniquement le nombre de lignes correspondantes -i insensible à la casse (pour les caractères uniques) -n afficher les numéros de ligne correspondants -v ne pas afficher aucune correspondance Toutes les lignes de texte -s n'affiche pas de messages d'erreur -E utilise des expressions régulières étendues Pour plus d'options, veuillez consulter : man grep 3, Exemples de grep couramment utilisés (1) Requête de fichiers multiples grep "sort" *.doc #Voir la correspondance du nom de fichier (2) Correspondance de lignes : afficher le nombre de lignes correspondantes grep -c "48" data.doc #Afficher le nombre de lignes contenant 48 caractères dans le document (3) Afficher les lignes correspondantes et le nombre de lignes grep -n "48" data .doc #Afficher toutes les lignes et numéros de ligne correspondant à 48 (4) Afficher les lignes qui ne correspondent pas grep -vn "48" data.doc # Afficher toutes les lignes qui ne contiennent pas 48 (4) Afficher les lignes qui ne correspondent pas grep -vn "48" data.doc #Afficher toutes les lignes qui ne contiennent pas 48 (5) Sensible à la casse grep -i "ab" data.doc #Afficher toutes les lignes contenant des chaînes de ab ou Ab 4, application d'expressions régulières (1) Application d'expressions régulières (note : il est préférable de mettre les expressions régulières entre guillemets simples) grep '[239].' #Afficher tous les caractères se terminant par 2, 3 ou les lignes commençant par 9 et contenant deux nombres (2) Test sans correspondance grep '^[^48]' data.doc #Ne correspond pas aux lignes commençant par 48 (3) Utiliser la correspondance de modèles étendue grep -E '219|216' data.doc (4) ... Cela doit être appliqué et résumé en permanence dans la pratique, et maîtriser les expressions régulières avec compétence. 5, utilisez le nom de classe pour utiliser le nom de classe pour la correspondance de modèles internationaux : [[:upper:]] [A-Z] [[ :lower:]] [a-z] [[:digit:]] [0-9] [[:alnum:]] [0-9a-zA-Z] [[:space:]] Espace ou tabulation [[:alpha:]] [a-zA-Z] (1) Utiliser grep '5[[:upper:]][[:upper:]]' data.doc #Lignes de requête commençant par 5 et se terminant par deux lettres majuscules 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!