Table des matières
Introduction à grep
Comment utiliser grep
Utilisation étendue de grep
métacaractères d'expression régulière grep
Maison Opération et maintenance exploitation et maintenance Linux Explication détaillée des cas de code sur grep et les expressions régulières sous Linux

Explication détaillée des cas de code sur grep et les expressions régulières sous Linux

Jul 26, 2017 pm 04:03 PM
grep linux 正则

Introduction à grep

Grep est un puissant outil de recherche de texte qui peut utiliser des expressions régulières pour rechercher du texte et imprimer les lignes correspondantes. Il existe généralement trois versions de grep : grep, egrep (équivalent à grep -E) et fgrep. egrep est un grep étendu et fgrep est un grep rapide (chaîne fixe pour rechercher du texte, ne prend pas en charge les références d'expressions régulières mais la requête est extrêmement rapide). grep est l'un des trois mousquetaires du traitement de texte Linux.

Comment utiliser grep

Comment utiliser : grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN | [FILE ...]

Options communes :

--color=auto : Colorez le texte correspondant et mettez-le en surbrillance

-i : Ignorer la taille des caractères ; Écrivez

-o : affiche uniquement les chaînes correspondantes

-v : affiche les lignes qui ne peuvent pas correspondre au modèle

-E : prend en charge l'utilisation d'expressions régulières étendues

-q : Mode silencieux, c'est-à-dire qu'aucune information n'est émise

-A # : Afficher les lignes correspondant au motif et # lignes après celui-ci

-B # : Afficher les lignes correspondant au motif Lignes correspondant au motif et les # lignes avant et après

-C # : Afficher les lignes correspondant au motif et les # lignes avant et après

Remarque  : obligatoire lors de l'utilisation de la correspondance grep. Utilisez des guillemets doubles (les guillemets simples sont des guillemets forts) pour éviter que le système ne les confonde avec des paramètres ou des commandes spéciales et ne signale une erreur.

Utilisation étendue de grep

Utilisation : egrep [OPTIONS] PATTERN [FILE...]

grep -E [OPTIONS] ] PATTERN [FILE...]

-i : ignorer la casse des caractères
-o : afficher uniquement la chaîne correspondante elle-même
-v : afficher le motif ne correspondant pas au ligne
-q : mode silencieux, c'est-à-dire qu'aucune information n'est émise
-A # : Afficher la ligne correspondant au motif et les # lignes qui le suivent
-B # : Afficher la ligne correspondant au motif motif et ses # lignes # précédentes
-C # : affiche les lignes correspondant au motif et les # lignes avant et après
-G : prend en charge les expressions régulières de base

métacaractères d'expression régulière grep

'^' : Ancre le début de la ligne

'$' : Ancre la fin de la ligne

'.' : Correspond à n'importe quel caractère

' *' : correspond à zéro ou plusieurs caractères précédents

'?' : correspond au caractère précédent 0 ou 1 fois

'+' : correspond au caractère précédent 1 ou plusieurs fois

;

'{m}' : fait correspondre le caractère qui le précède m fois (pour les caractères d'échappement)

'{m,n}' : fait correspondre le caractère qui le précède au moins m fois et au plus n fois

 []' : correspond à un caractère dans la plage spécifiée | '[^]' correspond à n'importe quel caractère en dehors de la plage spécifiée

 '<' : mot d'ancrage Titre, ' >' ou 'b' : fin du mot d'ancrage (disponible  : correspond à des mots complets)

 ()' : traite plusieurs caractères dans leur ensemble

Référence arrière : Référencez les caractères correspondant au motif dans les parenthèses de regroupement précédentes

Le contenu correspondant au motif dans les parenthèses de regroupement peut être automatiquement enregistré par le moteur d'expression régulière Dans les variables internes :

1 : Le motif commence par la gauche, le contenu correspond au motif entre la première parenthèse gauche et la parenthèse droite correspondante

 2 : Le Le motif commence à gauche, le contenu correspond au motif entre le deuxième crochet gauche et le crochet droit correspondant...

 Les expressions régulières étendues sont légèrement différentes des expressions régulières :

 []' : correspond toujours à n'importe quel caractère dans la plage spécifiée mais il existe de nombreuses méthodes de correspondance spéciales ;

 [:digit:] correspond à n'importe quel chiffre

 [:lower:] correspond à n'importe quelle lettre minuscule          

  [:upper:] correspond à n'importe quelle majuscule lettre

[:alpha:] correspond à n'importe quelle lettre

[:alnum:] correspond à n'importe quelle lettre ou chiffre

[:punct:] correspond à n'importe quel symbole

 [:space:] correspond à un seul espace

Certains endroits annulent l'utilisation des caractères d'échappement :

'?' : correspond au caractère précédent 0 ou 1 fois ;

 '+' : Faites correspondre le caractère qui le précède 1 ou plusieurs fois

 '{m}' : Faites correspondre le caractère qui le précède m fois (pour les caractères d'échappement)

'{m ,n}' : Faites correspondre le caractère précédent au moins m fois et au plus n fois

() : Regroupez un ou plusieurs caractères ensemble et traitez-les dans leur ensemble, les références inversées sont utilisées comme d'habitude.

 |' : ou (

Remarque : 'C|cat' signifie C et chat, '(C|c)at est Chat et chat')

Questions pratiques :

1. Répertoriez les noms d'utilisateur de tous les utilisateurs connectés sur le système actuel Remarque : Si le même utilisateur se connecte plusieurs fois, il ne sera affiché qu'une seule fois

<.>

2. Obtenez les informations pertinentes de l'utilisateur qui s'est connecté pour la dernière fois au système actuel
[root@localhost ~]# who | cut -d&#39; &#39; -f1|uniqroot
Copier après la connexion


3. Obtenez le plus d'utilisateurs sur le système actuel qui l'utilise comme shell par défaut Ce shell
[root@localhost ~]# id `last | head -1 | cut -d&#39; &#39; -f1`
uid=0(root) gid=0(root) groups=0(root)
Copier après la connexion

[root@localhost ~]# cut -d&#39;:&#39; -f7 /etc/passwd|uniq -c|sort -n|tail -1|cut -d&#39; &#39; -f7/sbin/nologin
Copier après la connexion

  4.将/etc/passd中的第三个字段设置最大的后10个用户的信息全部改为大写保存至/tmp/maxuser.txt文件中


[root@localhost ~]# sort -t&#39;:&#39; -k3 -n /etc/passwd|tail -10|tr &#39;a-z&#39; &#39;A-Z&#39; >/tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt 
NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN
SYSTEMD-NETWORK:X:192:192:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
NGINX:X:996:994:NGINX WEB SERVER:/VAR/LIB/NGINX:/SBIN/NOLOGIN
CHRONY:X:997:995::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
POLKITD:X:998:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
SYSTEMD-BUS-PROXY:X:999:997:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
DINGJIE:X:1000:1000:DINGJIE:/HOME/DINGJIE:/BIN/BASH
JEFF:X:1001:1024:WOSHIDASHUAIBI:/HOME/JEFF:/BIN/BASH
EGON:X:1002:1002::/HOME/EGON:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
Copier après la connexion

  5.取出当前主机的IP地址


[root@localhost ~]# ifconfig | egrep "inet.*broadcast.*"|cut -d&#39; &#39; -f10192.168.0.133
Copier après la connexion

  6.列出/etc目录下所有已.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中


[root@localhost ~]# find /etc -name &#39;*.conf&#39; | egrep -o "[^/]*(\.conf)$"|tr &#39;a-z&#39; &#39;A-Z&#39; >/tmp/etc.conf
[root@localhost ~]# cat /tmp/etc.conf 
RESOLV.CONF
CA-LEGACY.CONF
FASTESTMIRROR.CONF
LANGPACKS.CONF
SYSTEMD.CONF
VERSION-GROUPS.CONF
LVM.CONF
LVMLOCAL.CONF
ASOUND.CONF
LDAP.CONF
MLX4.CONF
RDMA.CONF
SMTPD.CONF
Copier après la connexion

  7.显示/var目录下一级子目录或文件的总数


[root@localhost ~]# ls /var | wc -l21
Copier après la connexion

  8.取出/etc/group第三个字段数值最小的10个组的名字


[root@localhost ~]# sort -t: -k3 -n /etc/group|head -10 |cut -d&#39;:&#39; -f1
root
bin
daemon
sys
adm
tty
disklpmem
kmem
Copier après la connexion

  9.将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中


[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@localhost ~]# cat /tmp/etc.test 

#
# /etc/fstab
# Created by anaconda on Sat May 13 10:12:58 2017#
# Accessible filesystems, by reference, are maintained under &#39;/dev/disk&#39;# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/cl-root     /                       xfs     defaults        0 0UUID=2789d01a-4e2b-47a5-9c3c-537641648663 /boot                   xfs     defaults        0 0/dev/mapper/cl-swap     swap                    swap    defaults        0 0\S
Kernel \r on an \m
Copier après la connexion

  对于正则表达式的使用需要多联系加强记忆,否则是用不好正则表达式的,在学习过程中切记多写多背。

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment configurer la tâche de synchronisation APScheduler en tant que service sur macOS? Comment configurer la tâche de synchronisation APScheduler en tant que service sur macOS? Apr 01, 2025 pm 06:09 PM

Configurez la tâche de synchronisation APScheduler en tant que service sur la plate-forme MacOS, si vous souhaitez configurer la tâche de synchronisation APScheduler en tant que service, similaire à Ngin ...

Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

Comment ouvrir web.xml Comment ouvrir web.xml Apr 03, 2025 am 06:51 AM

Pour ouvrir un fichier web.xml, vous pouvez utiliser les méthodes suivantes: Utilisez un éditeur de texte (tel que le bloc-notes ou TextEdit) pour modifier les commandes à l'aide d'un environnement de développement intégré (tel qu'Eclipse ou NetBeans) (Windows: Notepad web.xml; Mac / Linux: Open -A TextEdit web.xml)

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

À quoi sert le mieux le Linux? À quoi sert le mieux le Linux? Apr 03, 2025 am 12:11 AM

Linux est mieux utilisé comme gestion de serveurs, systèmes intégrés et environnements de bureau. 1) Dans la gestion des serveurs, Linux est utilisé pour héberger des sites Web, des bases de données et des applications, assurant la stabilité et la fiabilité. 2) Dans les systèmes intégrés, Linux est largement utilisé dans les systèmes électroniques intelligents et automobiles en raison de sa flexibilité et de sa stabilité. 3) Dans l'environnement de bureau, Linux fournit des applications riches et des performances efficaces.

Comment est la compatibilité Debian Hadoop Comment est la compatibilité Debian Hadoop Apr 02, 2025 am 08:42 AM

Debianlinux est connu pour sa stabilité et sa sécurité et est largement utilisé dans les environnements de serveur, de développement et de bureau. Bien qu'il y ait actuellement un manque d'instructions officielles sur la compatibilité directe avec Debian et Hadoop, cet article vous guidera sur la façon de déployer Hadoop sur votre système Debian. Exigences du système Debian: Avant de commencer la configuration de Hadoop, assurez-vous que votre système Debian répond aux exigences de fonctionnement minimales de Hadoop, qui comprend l'installation de l'environnement d'exécution Java (JRE) nécessaire et des packages Hadoop. Étapes de déploiement de Hadoop: Télécharger et unzip Hadoop: Téléchargez la version Hadoop dont vous avez besoin sur le site officiel d'Apachehadoop et résolvez-le

Debian Strings est-il compatible avec plusieurs navigateurs Debian Strings est-il compatible avec plusieurs navigateurs Apr 02, 2025 am 08:30 AM

"Debianstrings" n'est pas un terme standard, et sa signification spécifique n'est pas encore claire. Cet article ne peut pas commenter directement la compatibilité de son navigateur. Cependant, si "DebianStrings" fait référence à une application Web exécutée sur un système Debian, sa compatibilité du navigateur dépend de l'architecture technique de l'application elle-même. La plupart des applications Web modernes se sont engagées à compatibilité entre les navigateurs. Cela repose sur les normes Web suivantes et l'utilisation de technologies frontales bien compatibles (telles que HTML, CSS, JavaScript) et les technologies back-end (telles que PHP, Python, Node.js, etc.). Pour s'assurer que l'application est compatible avec plusieurs navigateurs, les développeurs doivent souvent effectuer des tests croisés et utiliser la réactivité

See all articles