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