Maison  >  Article  >  Opération et maintenance  >  expression régulière

expression régulière

巴扎黑
巴扎黑original
2017-07-21 10:03:231992parcourir

1. Expression régulière

1. Type de caractères correspondants

  • [a-z] : lettres minuscules

  • [ A-Z] : lettres majuscules

  • [a-Z] : lettres minuscules ou majuscules

  • [0-9] : chiffres

  • [a-zA-Z0-9] : Correspond à un caractère qui est une lettre ou un chiffre

  • : Correspond à n'importe quel caractère, à l'exception des espaces

    .
  • [0-f] : nombre hexadécimal

  • abc | def : abc ou def

  • a ( bc | de) f : abcf ou adef

  • < : Le premier mot est généralement séparé par des espaces ou des caractères spéciaux, et la chaîne continue est considérée comme un mot

  • > : fin de mot

  • [^expression] : tous les caractères sauf les lettres minuscules, et ainsi de suite.

2. Suivi des symboles suivants pour contrôler le nombre de correspondances

Le côté gauche de ces symboles doit avoir l'expression du premier point ci-dessus

  • Expression* : 0 ou n caractères

  • Expression+ : 1 ou n caractères

  • Expression ? : 0 ou 1 caractères

  • expression {n} : n caractères

  • expression {n:m} : n à m Caractères

  • Expression {n,} : au moins n caractères

[Exemple] [a-z]* signifie correspondre à 0 Ou plusieurs lettres minuscules

3. Contrôlez les caractères correspondants au début et à la fin

  • ^ expression : la tête correspond

  • Expression$ : La queue rencontre

2. Trois principaux outils de traitement de texte Linux

1. Outil de filtrage egrep

Version étendue de grep, vous. peut utiliser des expressions régulières

Syntaxe :

egrep - option nom de fichier 'expression régulière'

Options :

  • -n : Afficher les numéros de ligne

  • -o : Afficher uniquement le contenu correspondant

  • -q : Silencieux mode, pas de sortie, il faut utiliser $? pour juger si l'exécution est réussie, c'est-à-dire si le contenu souhaité est filtré

  • - l : Si la correspondance est réussie, seulement le nom du fichier sera imprimé s'il échoue, il ne sera pas imprimé. Habituellement, -rl est utilisé ensemble, grep -rl 'root' /etc

  • -A : s'il correspond. En cas de succès, la ligne correspondante et les n lignes suivantes seront imprimées ensemble

  • -B : Si la correspondance est réussie, la ligne correspondante et les n premières lignes seront imprimées ensemble

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

  • --color

  • -c : Si la correspondance est réussie, imprimez le nombre de lignes correspondantes

  • -i : Ignorer la casse

  • - v : Nier, ne pas correspondre

  • -w : Faire correspondre les mots

2. 🎜>

Syntaxe :

Syntaxe 1 : sed - option 'positionnement numérique + commande' Nom du fichier

Option :

    -n : Mode silencieux, pas de sortie
  • -e : Montage multiple, ce n'est pas très clair
  • - i : Modification directe Au lieu de sortir le contenu du fichier
  • -r : Mode étendu, vous pouvez utiliser des expressions régulières
  • -f : Spécifiez le nom du fichier et modifiez l'action Écrire dans un nouveau fichier
Positionnement :

①Positionnement du numéro (positionnement du numéro de ligne d'entrée)

    1 : Ligne unique
  • 1,3 : Plage de la première ligne à la troisième ligne
  • 2 ,+4 : Plusieurs lignes après la ligne correspondante
  • 4,~3 : De la quatrième ligne au multiple suivant de 3 lignes
  • 2 ~3 : Lignes toutes les trois lignes à partir de la deuxième ligne
  • $ : Dernière ligne
  • 1 ! : Lignes autre que la première ligne
[Exemple] sed -n '1p' /etc/passwd

②Positionnement d'expression régulière

    Les expressions régulières doivent être enveloppées avec //
  • L'extension des expressions régulières nécessite le paramètre -r ou un échappement
  • Le remplacement peut utiliser des sous-modèles d'expressions régulières, c'est-à-dire que les parenthèses (), 1 ou 2 peuvent représenter des sous-modèles
[Exemple] sed - r 's/(. )(.)/21/ file1 signifie remplacer la première et la deuxième partie de la correspondance

* Option gourmande : remplir g, ce qui signifie tout remplacer éléments correspondants dans une ligne

Commande :

    a ∶ ajouter,
  • c ∶ changer,
  • d ∶ supprimer supprimer,
  • i ∶ insérer insérer, je peux être suivi de chaînes, et ces chaînes seront dans une nouvelle ligne Apparaître (la ligne précédente actuelle)
  • p∶ imprimer imprimer
  • s∶ remplacer remplacer, vous pouvez directement effectuer le remplacement travail. Habituellement, cette action peut être associée à une expression régulière. Par exemple, 1,20s/old/new/g
*instructions spéciales de la commande :

utilisez {commande 1 : commande 2 : commande 3 } Plusieurs commandes peuvent être ajoutées

syntaxe de commande : sed -r 'commande de remplacement s/expression régulière/contenu de remplacement/option gourmande g' nom de fichier

3.

Il est composé de commandes, régulières (doit être entouré de //), d'opérations de comparaison et relationnelles

Utilisez le paramètre -F en option pour définir le symbole d'intervalle

Utilisez l'ordre de 1 $, 2 $, 3 $, etc. pour représenter les différents champs dans chaque colonne séparés par des espaceurs dans chaque ligne de fichiers. La variable NF représente le nombre de champs dans l'enregistrement actuel

. Syntaxe

awk - Paramètre d'option 'Jugement logique {variable de commande 1, variable 2, variable 3}' Nom du fichier

Option

  • -F Définir le séparateur de champ , le délimiteur par défaut est des espaces continus ou des tabulations

  • -v Définir des variables et attribuer des valeurs. Vous pouvez également utiliser la méthode empruntée pour introduire

    .
à partir des variables shell

Variable AWK

  • NR Le nombre d'enregistrements actuels (statistiques une fois tous les fichiers connectés)

  • FNR Le nombre d'enregistrements actuels (uniquement les statistiques pour le fichier actuel, pas tous)

  • Le séparateur de champ FS est par défaut des espaces ou des tabulations continus, et plusieurs différents symboles peuvent être utilisés pour la séparation Symbole -F[:/]

  • OFS Le séparateur par défaut pour les caractères de sortie est l'espace

[Exemple OFS]

# awk -F : 'OFS="=====" {print $1,$2}' /etc/passwd
root===== x

  • NF Le nombre de champs dans la ligne actuellement lue

  • ORS L'enregistrement de sortie par défaut le séparateur est une nouvelle ligne

[Exemple ORS]

# awk -F: 'ORS="=====" { print $1,$2}' /etc /passwd
root x=====bin x=====

  • FILENAME actuel nom de fichier

[Exemple 1] Utilisation de variables AWK
# awk '{print NR,FNR,$1}' file1 file2
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#

[Exemple 2]Comment citer les variables du shell

# a=root
# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
Ou divisez la commande entière et transmettez-le pour exposer les variables du shell,
# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
# a=NF
# awk -F: '{print $'$a'} ' /etc/passwd

Opérations logiques (peuvent directement référencer des champs pour les opérations)

  • = += -= /= *= : Affectation

  • && || : Logique ET logique ou NON logique

  • ~ !~ : Correspondance régulière ou non, les expressions régulières doivent être entourées de /regular/

  • <= >= != ==: relation, quand en comparant les chaînes, les chaînes doivent être placées entre guillemets doubles Come to

  • $ : les références de champ doivent être ajoutées avec $, tandis que les références de variables sont directement nommées avec des noms de variables

  • + - * / % ++ -- : Opérateurs

Séquence d'échappement

  • \ soi

  • $ Échapper $

  • t onglet

  • b retour arrière

  • r Caractère de retour chariot

  • n Caractère de saut de ligne

  • c Annuler le saut de ligne

Veuillez me corriger s'il y a des erreurs. Pour plus de détails, veuillez vous référer à :


.

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