[shell] Expresiones regulares: comodines comunes, metacaracteres y caracteres de escape

1. Definición

Una expresión regular es una fórmula que puede usar un cierto patrón para coincidir con un tipo de cadena.Es una cadena compuesta por una cadena de caracteres y metacaracteres. Los llamados metacaracteres son caracteres que se utilizan para explicar el contenido de las expresiones de caracteres, convertir y describir diversa información de operaciones.

 

2. Comodines comunes

1. Haz coincidir un

1.1 " . " Notación de puntos

La notación de puntos se usa para hacer coincidir cualquier carácter excepto el de nueva línea .

[root@localhost ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

1.2. Símbolo " ?": representa cualquier

Cuando se usa como comodín, representa cualquier carácter.
Si desea enumerar archivos que comienzan con la letra A, tienen una letra en el medio y terminan con .doc, debe usar "?".

[root@localhost ~]# ls-l A?.doc

 

1.3. Símbolo "$": cola de partido

" $ " se usa para coincidir con la cola, por ejemplo " abc$ " representa la línea que termina en abc.

" ^$ ": significa que la línea está vacía, porque no hay nada entre ^ y $

# 以r开头,中间有一串任意字符,以h结尾的行
[root@localhost ~]# grep '^r.*h$' /etc/passwd
root:x:0:0:root:/root:/bin/bash

 

1.4. Símbolo " [] "

Se utiliza para hacer coincidir cualquier carácter que aparezca entre corchetes

Cualquiera de las opciones A, B, C y D, expresada en expresiones regulares es [ABCD]
Para hacer coincidir cualquier letra mayúscula, debe usar el signo "-" para limitar el rango, escrito como [AZ], para hacer coincidir todas las letras Luego escriba [A-Za-z].

Coincide con el número de teléfono móvil: "^1[38][0-9]{9}"

 

1.5. Símbolo " ^ " y símbolo " ! "

  1. Cuando aparece en "[]", significa negación. [^A] (o [!A]) significa no A.
  1. Solía ​​coincidir al principio. Por ejemplo, "^raíz" coincide con las líneas que comienzan con la letra raíz.
[root@localhost ~]# grep '^root' 
/etc/passwdroot:x:0:0:root:/root:/bin/bash

 

2. Empareja múltiples

2.1. Símbolo " * "

Representa 0 o más caracteres. Por ejemplo, *.doc se refiere a todos los archivos que terminan en .doc.

El signo " " se usa a menudo junto con el símbolo "." Por ejemplo, ". " representa cualquier longitud de caracteres que no contengan saltos de línea.

[root@localhost ~]# grep 'r*t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
。。。。

 

2.2 Notación "{n,m}"

" * " no puede controlar con precisión el número de repeticiones de la coincidencia, pero usar el símbolo "{n,m}" puede controlar el número de repeticiones de caracteres de manera más flexible.

 

2.3. Símbolo "{}"

Coincide con todos los caracteres separados por comas entre paréntesis.

Por ejemplo, a continuación se enumeran todos los archivos que comienzan con las letras A, B, C y terminan con .doc:

#第一种方法:用“{
    
    }[root@localhost ~]# ls -l {
    
    A,B,C}.doc
#第二种方法:用“[][root@localhost ~]# ls -l [A-C].doc
#以上两种方法都能满足题意,但是如果要列出以字母AB或者CD开头、以.doc结尾的文件,就只能用“{
    
    }”了。
[root@localhost ~]# ls -l {
    
    [A-Z]*.doc,[0-9]??.txt}

 

3. Metacaracteres y caracteres de escape

inserte la descripción de la imagen aquí

 

inserte la descripción de la imagen aquí

 
 

Referencia:
https://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

Supongo que te gusta

Origin blog.csdn.net/hiliang521/article/details/131532569
Recomendado
Clasificación