La impresión de expresión regular global o simplemente grep es uno de los comandos más versátiles y comunes en los sistemas Unix y Linux. El comando busca archivos de entrada únicos o múltiples y líneas de patrones coincidentes. Como resultado, obtiene una salida estándar con las líneas coincidentes.
Si no especifica un archivo, grep usa la entrada estándar para las lecturas y lo más probable es que sea la salida de otro comando. En general, grep presenta una sintaxis directa, ya sea que la use con o sin el nombre del archivo.
Este artículo le proporciona una descripción general rápida de la sintaxis grep y algunos comandos básicos que puede usar con o sin el nombre del archivo.
Antes de que empieces
Todos los comandos grep siguen la misma sintaxis y cada parámetro tiene una función específica. Aquí está la línea de muestra:
grep PATTERN
Puede usar varias OPCIONES en grep para controlar la salida del comando y el número comienza en cero. PATTERN indica el patrón de búsqueda que desea aplicar. En cuanto al ARCHIVO, aquí es donde van el nombre o los nombres del archivo, pero el parámetro se puede establecer en cero.
Búsqueda de cadenas en la salida del comando
Como se indicó, no necesita usar archivos de entrada específicos. La salida de otro comando se puede usar en grep para obtener líneas que coincidan exactamente con un patrón. Esto se puede usar para determinar qué procesos están activos en el sistema. Esta es una sintaxis de comando de muestra:
$ ps -ef | grep www-data
La salida que obtienes debería verse así:
www-data 18247 12675 4 16:00? 00:00:00 php-fpm: piscina www
raíz 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto –exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir = .svn www-data
www-data 31147 12770 0 22 de octubre? 00:05:51 nginx: proceso de trabajo
www-data 31148 12770 0 22 de octubre? 00:00:00 nginx: proceso del administrador de caché
Hay una manera de excluir la línea de comando que presenta procesos grep. Para esto, necesita usar $ ps -ef | grep www-data | grep -v comando grep .
Grep Word Search
Puede usar los comandos grep para buscar palabras específicas en archivos en su sistema. De hecho, no hay necesidad de escribir una palabra completa. Puede usar gnu, por ejemplo, y el comando genera todas las palabras que tienen estas tres letras. La sintaxis del comando es:
$ grep gnu / usr / share / words
Después de ejecutar el comando, su salida debería verse así:
cygnus
ñu
interregno
lgnu9d
lignum
botella doble
Magnuson
esfagno
tuerca de mariposa
Por otro lado, puede buscar solo esa palabra específica o cadena de letras y excluir todo lo demás. Para esto, debe agregar -w o –word - regexp a la sintaxis. En este caso, el comando de ejemplo tiene este aspecto: $ grep -w gnu / usr / share / words .
Nota: Para fines de gramática, algunos de los comandos tienen un punto final al final. No necesita ese signo de puntuación para grep. Excluirlo cuando copie / pegue el comando.
¿Es Grep sensible a mayúsculas y minúsculas?
Todos los comandos grep distinguen entre mayúsculas y minúsculas de forma predeterminada. Esto significa que usar los caracteres en minúscula y mayúscula marca la diferencia en el comando en sí. Sin embargo, puede agregar - i ( - ignorar - mayúsculas ) a la línea de comando y permitir que el sistema busque palabras en mayúsculas y minúsculas.
Por ejemplo, su comando de entrada puede verse así $ grep -i Zebra / usr / share / words . Permite que la salida coincida con cualquier combinación de letras mayúsculas y minúsculas cuando busca cebra.
Línea de números
Use la opción –line-number o simplemente -n para determinar el número de líneas con una cadena que coincide con un patrón de búsqueda particular. Como resultado, obtienes una salida estándar con un número de línea delante.
El comando exacto puede verse así: $ grep -n 10000 / etc / services . Tras la ejecución, la salida proporciona todas las coincidencias que encuentra en 10000 líneas. Mira la muestra a continuación:
10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp
Archivos en carpetas
Puede poner un asterisco detrás de un comando grep en lugar de un nombre de archivo. Usando nuevamente los criterios de gnu, el comando se ve así $ grep gnu * y la salida enumera los archivos que contienen gnu . Es importante tener en cuenta que este tipo de comando devuelve una línea.
Nota: Con grep, una línea se refiere a una secuencia de caracteres que se ejecutan hasta un salto específico. A menos que refine la búsqueda, la salida puede contener párrafos enteros de información.
Da el siguiente paso con Grep
Esta guía solo rasca la superficie de lo que puede hacer con grep. Puede tomar un tiempo obtener todas las probabilidades y termina, pero la sintaxis sigue un principio bastante simple. Y con algo de práctica, podrá refinar sus búsquedas a la perfección, con o sin el nombre del archivo.
