Scripts shell -------- connaissance des expressions régulières

Expression régulière

Les expressions régulières sont divisées en expressions régulières de base et expressions régulières étendues. Il ne s'agit pas d'un programme outil, mais d'une base standard pour le traitement des chaînes. Il utilise une seule chaîne pour rechercher et faire correspondre une série de chaînes répondant à une certaine règle grammaticale.

Définition de l'expression régulière

  • L'expression régulière est également appelée expression régulière, expression régulière
  • Utilisez des chaînes pour décrire et faire correspondre une série de chaînes qui répondent à une certaine règle
  • La composition des expressions régulières:
    -Caractères ordinaires: lettres majuscules et minuscules, chiffres, signes de ponctuation et quelques autres symboles
    -Métacaractères: caractères spéciaux avec une signification particulière dans les expressions régulières
  • Outils
    prenant en charge les expressions régulières: -vi éditeur: prend en charge les expressions régulières de base; ne prend pas en charge les expressions régulières étendues
    -grep: prend en charge les expressions régulières de base; ne prend pas en charge les expressions régulières étendues
    -egrep: prend en charge les expressions régulières de base; prend en charge Expressions régulières étendues
    -sed: prend en charge les expressions régulières de base; ne prend pas en charge les expressions régulières étendues
    -awk: prend en charge les expressions régulières de base; prend en charge les expressions régulières étendues

Expression régulière de base

  • Les expressions régulières de base sont des parties d'expressions régulières couramment utilisées
  • En plus des caractères ordinaires, les métacaractères courants:
Métacaractère effet
\ Le caractère d'échappement est utilisé pour annuler la signification des symboles spéciaux, par exemple: \! , \ N
^ La position de départ du caractère correspondant; par exemple: ^ mot correspond à la ligne commençant par mot
$ La position de fin du caractère correspondant; par exemple: mot $ correspond à la ligne se terminant par mot
. Correspond à n'importe quel caractère sauf \ n (nouvelle ligne)
* Correspond à la sous-expression précédente 0 fois ou plus
[liste] Correspond à un caractère de la liste; par exemple: [0-9] correspond à n'importe quel chiffre
[^ liste] Correspond à un caractère ne figurant pas dans la liste; par exemple: [^ 0-9] correspond à tout caractère non numérique
\ {n \} Correspond à la sous-expression précédente n fois; par exemple: [0-9] \ {2 \} correspond à deux chiffres
\ {n, \} La sous-expression qui correspond aux nouilles d'argent n'est pas inférieure à n fois; par exemple: [0-9] \ {2, \} signifie deux chiffres ou plus
\ {n, m \} Faire correspondre la sous-expression précédente n à m fois; par exemple: [az] \ {2,3 \} correspond à deux à trois lettres minuscules
[] Jeu de caractères; correspond à n'importe quel caractère contenu; par exemple: "[abc]" peut correspondre au "a" dans "[abc]"
[n1-n2] Plage de caractères; correspond à tout caractère non inclus

Prenez l'outil grep et le fichier / etc / passwd comme exemples, et donnez quelques exemples:

grep root /etc/passed   :筛选文件中包含root的行

grep ^root /etc/passwd  :筛选出以root开头的行

grep bash$ /etc/passwd  :筛选出以bash结尾的行

grep -v root /etc/passwd  :筛选文件中不包含root的行

grep 'r..d' /etc/passwd  :筛选出 r 和 d 之间有两个字符的行

grep '[^s]bin' /etc/passwd  :筛选 bin 前面不是 s 的行

grep “^$” /etc/passwd  :筛选出空白行,没有空白行的所以没输出

grep 't[es]' /etc/passwd  :筛选包含字符串 te 或 ts 的行

grep '0\ {1,\}' /etc/passwd  :查找数字 0 出现1次以上

grep -e "ntp" -e "root" /etc/passwd  :-e 参数查找多个模式  

"*" signifie n'importe quel caractère du caractère générique. Dans les expressions régulières, cela signifie correspondre à la sous-expression précédente 0 fois ou plus

grep 0* /etc/passwd  :这里的0*会匹配所有内容(若是有空白行的文件,甚至包括空白行)
grep 00* /etc/passwd  :这里的00* 匹配至少包含一个 0 的行(第一个 0 必须出现,第二个0可以出现0次或者多次)

Expression régulière étendue

  • L'expression régulière étendue consiste à développer et à approfondir l'expression régulière de base
  • Métacaractères courants
Métacaractère effet
+ Répéter un ou plusieurs des caractères précédents
0 ou un caractère avant
Symbole de tuyau Utilisez ou (ou) pour rechercher plusieurs caractères
() Trouvez le personnage "groupe"
() + Identifier plusieurs groupes en double

Prenez l'outil egrep, le fichier / etc / passwd comme exemple, et donnez quelques exemples:

egrep 0+ /etc/passwd  :匹配至少一个 0 的行

egrep '(root|ntp)' /etc/passwd  :匹配包含 root 或 ntp 的行

egrep ro?t /etc/passwd  :匹配 rt 或者 rot 的行

egrep -v '^$|^#' /etc/passed  :过滤文件中的空白行与 # 开头的行,没有空白行与 # 号开头的行,所以没有任何输出

Je suppose que tu aimes

Origine blog.csdn.net/XCsuperman/article/details/108184114
conseillé
Classement