grep, egrep, fgrep: herramienta de filtrado de texto (patrón: patrón) herramienta;
grep: expresión regular básica, -E, -F
egrep: expresión regular extendida, -G, -F
fgrep: no admite expresiones regulares
egrep :
Admite expresiones regulares extendidas para lograr una función de filtrado de texto similar a grep: grep -E
grep [OPCIONES] PATRÓN [ARCHIVO ...]
Opciones:
-i , -o , -v , -q , -A , -B , -C
-G: admite expresiones regulares básicas
Metacaracteres para expresiones regulares extendidas:
Coincidencia de caracteres:
.: Cualquier caracter individual
[]: Cualquier carácter individual en el rango especificado
[^]: Cualquier carácter individual fuera del rango especificado
Coincidencias:
*: En cualquier momento, 0, 1 o varias veces;
? : 0 veces o 1 vez, los caracteres anteriores son opcionales;
+: Al menos una vez antes del personaje;
{m}: el carácter precedente m veces;
{m, n}: al menos m veces, como máximo n veces;
{0, n}
{metro,}
Ancla de posición
^: Ancla al principio de la línea;
$: Ancla al final de la línea;
\ <, \ B: ancla al comienzo de la palabra;
\>, \ B: ancla de sufijo;
Agrupación y cotización:
(): Agrupación; los caracteres que coinciden con el patrón entre paréntesis se registrarán en las variables internas del motor de expresión regular;
Referencias hacia atrás: \ 1, \ 2, ...
O:
a | b: aob;
C | cat : C 或 cat
(c | C) en : gato 或 Gato
Practica
1. Busque todas las líneas en el archivo / proc / meminfo que comiencen con S mayúscula o minúscula, hay al menos tres formas de lograrlo;
grep -i "^ [sS]" / proc / meminfo
grep -i "^ s" / proc / meminfo
grep "^ [sS]" / proc / meminfo
grep -E "^ (s | S)" / procmeminfo
2. Mostrar información relacionada de usuarios root, centos o user1 en el sistema actual;
grep -E "^ (root | centos | usuario1) \>" / etc / passwd
3. Busque la línea seguida de un paréntesis en una palabra en el archivo /etc/rc.d/init.d/functions;
grep -E -o "[_ [: alnum :]] + \ (\)" /etc/rc.d.init.d/functions
4. Use el comando echo para generar una ruta absoluta y use egrep para extraer el nombre base;
echo / etc / sysconfig / | grep -E -o "[^ /] + /? $"
Además: saque su nombre de ruta; similar al resultado de ejecutar el comando dirname en él;
5. Encuentre el valor entre 1-255 en el resultado del comando ifconfig;
ifconfig | grep -E -o “\ <([1-9] | [1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 [ 0-5]) \> "
6. Tarea extracurricular: encuentre la dirección IP en el resultado del comando ifconfig;
7. Agregue bash de usuario, testbash, basher y nologin (el shell es / sbin / nologin), luego busque la línea con el nombre de usuario y el nombre de shell en el archivo / etc / passwd
grep -E "^ ([^:] + \>). * \ 1 $" / etc / passwd
fgrep: no admite metacaracteres de expresiones regulares;
Cuando no es necesario usar el modo de escritura de búsqueda de metacaracteres, es mejor usar fgrep;
Herramientas de visualización y procesamiento de texto: wc, cut, sort, uniq, diff, patch
wc: recuento de palabras
wc [opción] ... [ARCHIVO] ...
-l: líneas
-w: palabras
-c: bytes
cortar:
OPCIÓN de corte ... [ARCHIVO] ...
OPCIÓN:
-d CHAR: utiliza el carácter especificado como delimitador;
-f CAMPOS: campos seleccionados;
#: El campo único especificado;
# - #: Campos múltiples continuos;
#, #: Campos múltiples discretos;
ordenar:
ordenar [opción] ... [archivo] ...
-n: ordena según el tamaño numérico en lugar de los caracteres;
-t CHAR: especifica el delimitador;
-k #: campo utilizado para ordenar la comparación;
-r: ordenar en orden inverso;
-f: ignorar mayúsculas y minúsculas
-u: mantener solo una línea duplicada;
Líneas duplicadas: continuas e iguales;
uniq: informar o eliminar líneas duplicadas
uniq [opción] ... [entrada [salida]]
-c: muestra el número de repeticiones de cada línea;
-u: solo muestra líneas que no se han repetido;
-d: muestra solo líneas repetidas;
diff : comparar archivos línea por línea
archivos diff [opción] ...
diff / path / to / oldfile / path / to / newfile> / path / to / patch_file
-u: utiliza el mecanismo no comprobado, es decir, muestra el contexto de la línea que se va a modificar, el valor predeterminado es 3 líneas;
parche: parchear el archivo
patch [opciones] -i / ruta / a / patch_file / ruta / a / oldfile
patch / path / to / oldfile </ path / to / patch_file
Ejercicio: saque la dirección IP en el resultado del comando ifconfig eno16777736;