Análisis de ejercicios de expresión regular grep de linux

Reflexiones y sugerencias:

  • Debido a la rica gramática, piense en cómo resolver un problema tanto como sea posible ;

  • Piense más en los escenarios en los que se pueden aplicar tales respuestas;

  • Terminado una pausa cuestión de pensar acerca

  • Familiarizado con el documento ' man grep '

Parte basica

1. Utilice varias formas de generar todas las líneas en el archivo / proc / meminfo que comienzan con mayúsculas o minúsculas

Consejo: ignorar mayúsculas y minúsculas; diferentes formas de escribir expansión

grep -y '^ se / proc / meninfo

echo -e "sb \ nSb \ nsB \ nSB" | grep -i '^ s'

grep -E "^ (s | S)" / etc / fstab

grep "^ \ (s \ | S \)" / etc / fstab

 

2. Mostrar información sobre usuarios root, centos o usuarios en el sistema actual

grep -E '^ raíz | ^ centos | ^ raíz' / etc / passwd

 

3. Imprima todos los nombres de funciones en el archivo /etc/rc.d/init.d/functions (la línea entre paréntesis después de una palabra)

Consejos: el comienzo de la palabra, el final del corchete

grep -P "\ b \ w + \ (\)" /etc/rc.d/init.d/functions

 

4. Genere el último nombre de archivo ssc en la cadena de ruta / ssa / sssb / ssc

Consejo: Los caracteres que no sean barra / deben aparecer al menos una vez (el nombre del archivo no está vacío) y terminar con un carácter que no sea barra /

echo / sss / ssss / sss | grep -o -P "[^ /] + $"

Variación: muestra la ruta excepto el último nombre del archivo

Consejo: cualquier carácter y termina con una barra

echo / sss / ssss / sss | grep -o -P ". * /"

 

5. Busque el número entre 0-255 en el comando ifconfig;

Consejo: discusión clasificada / regular expandida

ifconfig | grep -E "\ b ([1-9] | [1-9] [0-9] | 1 [0-9 [0-9] | 2 [0-4] [0-9] | 25 [0 -5]) \ b "

 

6. Busque la línea donde el nombre de usuario del archivo es el mismo que el nombre del shell

Sugerencia: el nombre de usuario es la primera palabra, el nombre del shell es la última palabra y el medio se trata como cualquier carácter

grep -P '^ \ b (\ w +) \ b. * \ 1 $' / etc / fstab

 

7. Envíe la dirección IP en / ??? / ???

Consejo: El número de host está entre 1-254, que puede modificarse de acuerdo con el 0-255 anterior, pero es más complicado y es más problemático generar la dirección IP privada.

grep -Po '(? <= inet) (. *) (? = net)' / ??? / ???

 

Parte avanzada

8. Busque de forma recursiva el carácter principal {} en todos los archivos .php y html

grep "main ()". -r --incluir *. {php, html}

 

9. Busque recursivamente líneas que terminen con / sbin / nologin en varios directorios de archivos

grep -r -n '/ sbin / nologin $' / etc

 

10. Busque la línea que no comience con una letra en inglés en fstab y muestre el número de línea

Consejo: comience con una letra en inglés y niegue

grep -E -v -n '^ [a-zA-Z]' / etc / fstab

Alguien '^ [^ a-zA-Z]'

 

11.Filtra líneas en blanco y líneas que comienzan con #

grep -E -v '^ $ | ^ #' / etc / fstab

 

12. Busque la línea en el archivo con al menos un carácter en blanco seguido de un carácter que no esté en blanco

grep -P '^ \ s \ S +' /etc/grub2.cfg

 

13. Enumere todos los usuarios del sistema

Mensaje: UID: 1-999

grep -P '\ b [1-9] \ d {0,2} \ b' / etc / passwd

cat / etc / passwd | awk -F: '$ 3> 1 && $ 3 <1000 {print $ 0}'

 

14. En el archivo de filtro, se mostrará la línea que comienza con una palabra o una palabra precedida por _, y las dos líneas antes y después se muestran

Consejo: _ ?; debe tener palabras

grep -C2 -P '_? \ b \ w + \ b' /etc/rc.d/init.d/functions

Supongo que te gusta

Origin blog.csdn.net/weixin_31789689/article/details/106796866
Recomendado
Clasificación