Prefacio
De Linux "tres mosqueteros" grep
medios: sed
, awk
,.
La razón por la que se llama Los Tres Mosqueteros es que las herramientas anteriores pueden procesar mejor los resultados de las consultas de Linux.
Expresión regular
Los comandos anteriores se denominan Tres mosqueteros porque pueden combinar expresiones regulares para procesar el contenido de la consulta, y solo los "Tres mosqueteros" anteriores se pueden usar en combinación con expresiones regulares. A continuación se describe el significado de los siguientes caracteres de expresión regular:
Metacarácter | Caracteristicas | Descripción |
---|---|---|
^ | Coincide con la primera línea | Los medios comienzan con un cierto carácter. |
PS | Coincidir con el final de la línea | Significa que termina con un personaje |
^ $ | El significado de las líneas en blanco | Significa línea en blanco |
. | Coincidir con cualquier carácter individual | Significa coincidir con cualquier carácter |
* | Coincide con 0 o más de este carácter | Representa cualquier número de caracteres repetidos |
\ | Personaje de escape | Indica carácter de escape |
[] | Coincidir con los caracteres entre paréntesis | Medios para filtrar los caracteres entre paréntesis |
. * | Representa cualquier número de caracteres | Significa coincidir con cualquier número de caracteres |
Los especiales son los siguientes:
Expresión regular | Explicación |
---|---|
. | Cualquier personaje. |
[a B C] | Significa para coincidir con un carácter, este carácter debe ser uno de abc. |
[a-zA-Z] | Significa para coincidir con un carácter, este carácter debe ser una de las 52 letras de az o AZ. |
[^ 123] | Coincide con un carácter, este carácter son todos los caracteres excepto 1, 2, 3. |
Para algunos juegos de caracteres de uso común, el sistema define:
conjunto de caracteres | Definición de sistema equivalente |
---|---|
[A-Za-z] | Equivalente a [[: alpha:]] |
[0-9] | Equivalente a [[: dígito:]] |
[A-Za-z0-9] | Equivalente a [[: alnum:] |
tabulador, espacio | Esperando caracteres en blanco [[: espacio:]] |
[ARIZONA] | Equivalente a [[: superior:]] |
[Arizona] | Equivalente a [[: menor:]] |
Puntuación | [[:punto:]] |
Partidos:
\{metro\} | Coincide con el carácter anterior m veces |
\{metro,\} | Coincide con el carácter anterior al menos m veces |
\{Minnesota\} | Coincide con el carácter anterior al menos m veces y como máximo n veces |
\? | Haga coincidir el contenido que aparece antes de él 0 o 1 veces, equivalente a {0,1} |
* | Hacer coincidir el contenido que aparece antes de él cualquier número de veces es equivalente a {0,}, por lo que ". *" Expresa cualquier carácter cualquier número de veces, es decir, coincide con todo el contenido sin importar qué. |
Los tres mosqueteros es muy potente, pero sólo necesitamos para dominar el campo eran buenos en: grep擅长查找功能
, sed擅长取行和替换
, awk擅长取列
.
uso del comando grep
uso:
grep [选项]... PATTERN [FILE]...
Enumere algunos comandos de opciones comunes
Elegir opción | Explicación |
---|---|
-color | Colorea el texto coincidente |
-v | Por el contrario (invertir), muestra las líneas coincidentes sin patrón |
-yo | Ignorar mayúsculas y minúsculas (ignorar mayúsculas y minúsculas) |
-norte | Mostrar números de línea coincidentes |
-C | Cuente el número de filas coincidentes |
-Los | Mostrar solo cadenas que coincidan con el patrón |
-q | Modo silencioso, no se emite información |
-UNA | --After-context = NUM imprime NUM líneas que terminan con texto |
-SI | --Before-context = NUM imprime NUM líneas comenzando con texto |
-C | --Context = NUM imprime NUM líneas de texto |
-mi | Darse cuenta de la lógica o relación entre varias opciones, por ejemplo: archivo grep -e'cat '-e'dog' |
-w | El texto coincidente solo puede ser una palabra, no una determinada parte de la palabra. Por ejemplo, si hay me gusta en el texto y yo busqué como, puedes usar la opción -w para evitar que coincida con me gusta |
-MI | Expresión regular extendida (Extend) abierta, usar regular es equivalente a egrep |
-F | No admite regularidad, que es equivalente a fgrep |
ejemplo de comando grep
Uso 1:
[root@hadoop-master test-grep]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@hadoop-master test-grep]# grep -n "root" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin
[root@hadoop-master test-grep]# grep -vc "root" /etc/passwd
43
[root@hadoop-master test-grep]# grep -o "root" /etc/passwd
root
root
root
root
Uso 2:
[root@hadoop-master test-grep]# grep -A 2 "core id" /proc/cpuinfo
core id : 0
cpu cores : 1
apicid : 0
[root@hadoop-master test-grep]# grep -B 2 "core id" /proc/cpuinfo
physical id : 0
siblings : 1
core id : 0
[root@hadoop-master test-grep]# grep -C 2 "core id" /proc/cpuinfo
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
Uso tres:
[root@hadoop-master test-grep]# grep "/.*sh" /etc/passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
setroubleshoot:x:990:986::/var/lib/setroubleshoot:/sbin/nologin
saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
leo:x:1000:1000:leo:/home/leo:/bin/bash
mysql:x:987:1001::/home/mysql:/bin/bash
Uso cuatro:
[root@hadoop-master test-grep]# grep "/.\{0,2\}sh" /etc/passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
saned:x:989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
leo:x:1000:1000:leo:/home/leo:/bin/bash
mysql:x:987:1001::/home/mysql:/bin/bash
Uso cinco:
[root@hadoop-master test-grep]# grep -w ".\{0,2\}sh" /etc/passwd
root:x:0:0:root:/root:/bin/bash
leo:x:1000:1000:leo:/home/leo:/bin/bash
mysql:x:987:1001::/home/mysql:/bin/bash
Uso seis: