fbpx
Wikipedia

grep

grep es una utilidad de la línea de comandos escrita originalmente para ser usada con el sistema operativo Unix.

grep
Información general
Tipo de programa Comando
Autor Ken Thompson
Desarrollador AT&T Bell Laboratories
Lanzamiento inicial 00 de noviembre de 1974
Estado actual En desarrollo
Versiones
Última versión estable 3.7 (info) ( 14 de agosto de 2021 (2 meses y 29 días))
Última versión en pruebas ( 28 de septiembre de 2020 (1 año, 1 mes y 14 días))
Asistencia técnica
Enlaces
sitio web Sitio web oficial

Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular.

Su nombre deriva de un comando en el editor de texto ed que tiene la siguiente forma: g/re/p y significa «hacer una búsqueda global para las líneas que encajen con la expresión regular (regular expression en inglés), e imprimirlas (print en inglés)».[1]​ Hay varios argumentos que se pueden usar con grep para modificar el comportamiento por defecto.

Existen otros retroacrónimos (incorrectos) para el nombre, entre ellos: General Regular Expression Parser (analizador general de expresiones regulares), General Regular Expression Print (imprimir expresión regular general), y Global Regular Expression Print (imprimir expresión regular global), este último no tan lejano de la realidad.

Sintaxis

$ grep [opciones] [expresión regular] [archivo] 

Historia

grep es fruto de la filosofía “modular” de Unix: crear pequeños programas altamente especializados en una sola cosa, para luego utilizarlos combinados por medio de tuberías. Eventualmente el programa apareció en otras encarnaciones, como por ejemplo en DOS, actuando como herramienta de apoyo a compiladores.

Han existido varios intentos para darle una interfaz gráfica al programa, pero hasta ahora grep sigue siendo utilizado principalmente en líneas de comandos, mezclado con otros programas como tail, ps, y less.

La versión más popular es GNU grep, que está disponible para diversos sistemas operativos, entre ellos GNU/Linux, y existe el proyecto Gnuwin32, que proporciona una versión de grep para Windows.[2]

Funcionamiento

grep generalmente ejecuta alguna variante del algoritmo Boyer-Moore (para búsqueda de strings), utilizando expresiones regulares para definir la consulta. Puede manejar archivos, directorios (y subdirectorios), o la entrada estándar (stdin).

El programa es configurable por medio de opciones de invocación, pudiendo (por ejemplo) mostrar las líneas con aciertos, desaciertos, el contexto de la coincidencia, etc.

Ejemplos

Para mostrar todas las líneas que contienen la cadena «tal» en una lista de archivos (donde «*» representa todos los archivos en el directorio actual):

$ grep tal * 

Para mostrar todas las líneas que no contengan la cadena «tal», se usa «-v»:

$ grep -v tal * 

Para mostrar sólo el nombre de tales archivos, se usa «-l»:

$ grep -l tal * 

Para mostrar sólo el nombre de los archivos que no contienen la cadena, se usa «-L»:

$ grep -L tal * 

Para buscar recursivamente, no sólo en los archivos del directorio actual sino también en los de sus subdirectorios (donde "." representa el directorio actual), se usa «-r»:

$ grep -r tal . 

En solaris no funciona el parámetro -r. Para obtener la misma funcionalidad, se debe utilizar además el comando «find» y el comando «exec» (Recordemos, el parámetro «-l» mostrará únicamente el nombre del archivo que contenga la cadena "tal"):

$ find . -name "*.*" -exec grep -l "tal" {} \; 

La opción -r puede no estar disponible en todas las plataformas Unix. Se debe utilizar así:

$ find . -type f | xargs grep tal . 

Para buscar todas las líneas que comienzan por «Ahora» y terminan con «siempre» seguido de una cantidad arbitraria de espacio en blanco (nótese que el carácter ^ representa el inicio de la línea, así como $ representa el final):

$ grep '^Ahora.*siempre *$' 

Para hacer que grep lea de la entrada estándar, no se especifica archivo alguno. Por ejemplo, como ps -ef lista todos los procesos actualmente en ejecución, el siguiente comando imprime todos los procesos que está ejecutando el usuario actual:

$ ps -ef | grep $USER 

o

$ ps -efa | grep $USER 

Mostrará las cuentas de usuarios que presenten actividad en ese momento.

Variantes

Existen muchos derivados de grep; por ejemplo agrep, que significa approximate grep (grep aproximado), que sirve para hacer una búsqueda aproximada de cadenas; fgrep para buscar patrones fijos; egrep para búsquedas que involucren expresiones regulares más complejas; y tcgrep, que utiliza la sintaxis de expresiones regulares de Perl. Todas estas variantes de grep han sido llevadas a diversos sistemas operativos.

Muchos otros comandos contienen la cadena «grep». Por ejemplo pgrep, que muestra los procesos cuyos nombres encajan con cierta expresión regular.

En Perl existe la función grep, que recibe una expresión regular y una lista, y devuelve los elementos de la lista que encajan con dicha expresión.

El sistema Windows tiene una utilidad llamada «findstr», que se aproxima a las funciones de «grep».

El programa de maquetación Adobe InDesign también incluye las funcionalidades de GREP (desde 2007 con la versión CS3 en adelante), en los apartados de "Expresiones GREP" (en buscar y cambiar[3]​) y "Estilos GREP" (en estilos de párrafo[4]​).

Referencias

  1. Cassel, David (22 de julio de 2018). (html). The New Stack (en inglés). Archivado desde el original el 23 de julio de 2018. Consultado el 25 de julio de 2018. «ed let you specify regular expressions, which appeared between slashes, along with some operations (specified outside those slashes) to perform on the lines which matched. The operations were often indicated with a single letter, like ‘p’ for print or ‘a’ for append. And there was also a ‘g’ flag which stood for global and would perform a command not just on one line, but on every line of a file (that matched the specified regular expression). For example, that print command, “p”. And if you wrote out that command — with g for “global” and p for “print”, applying it to a regular expression between the slashes — it would look like this: g/re/p». 
  2. grep para Windows
  3. «Ayuda de InDesign: buscar/cambiar». Consultado el 12 de agosto de 2016. 
  4. «Ayuda de InDesign: Estilos GREP». Consultado el 12 de agosto de 2016. 

Véase también

Enlaces externos

  • GNU grep (alemán)
  • grep(1) – Comandos generales en el Manual de Debian
  • GNU grep - el grep que viene con las distribuciones GNU/Linux.
    • manual de grep (en inglés).
    • documentación de texinfo (en inglés).
  • Documentación (en inglés).
  • 12 ejemplos prácticos del comando grep
  •   Datos: Q283302
  •   Multimedia: Grep

grep, utilidad, línea, comandos, escrita, originalmente, para, usada, sistema, operativo, unix, información, generaltipo, programacomandoautorken, thompsondesarrolladorat, bell, laboratorieslanzamiento, inicial00, noviembre, 1974estado, actualen, desarrollover. grep es una utilidad de la linea de comandos escrita originalmente para ser usada con el sistema operativo Unix grepInformacion generalTipo de programaComandoAutorKen ThompsonDesarrolladorAT amp T Bell LaboratoriesLanzamiento inicial00 de noviembre de 1974Estado actualEn desarrolloVersionesUltima version estable3 7 info 14 de agosto de 2021 2 meses y 29 dias Ultima version en pruebas 28 de septiembre de 2020 1 ano 1 mes y 14 dias Asistencia tecnicaEnlacessitio web Sitio web oficial editar datos en Wikidata Usualmente grep toma una expresion regular de la linea de comandos lee la entrada estandar o una lista de archivos e imprime las lineas que contengan coincidencias para la expresion regular Su nombre deriva de un comando en el editor de texto ed que tiene la siguiente forma g re p y significa hacer una busqueda global para las lineas que encajen con la expresion regular regular expression en ingles e imprimirlas print en ingles 1 Hay varios argumentos que se pueden usar con grep para modificar el comportamiento por defecto Existen otros retroacronimos incorrectos para el nombre entre ellos General Regular Expression Parser analizador general de expresiones regulares General Regular Expression Print imprimir expresion regular general y Global Regular Expression Print imprimir expresion regular global este ultimo no tan lejano de la realidad Indice 1 Sintaxis 2 Historia 3 Funcionamiento 4 Ejemplos 4 1 Variantes 5 Referencias 6 Vease tambien 7 Enlaces externosSintaxis Editar grep opciones expresion regular archivo Historia Editargrep es fruto de la filosofia modular de Unix crear pequenos programas altamente especializados en una sola cosa para luego utilizarlos combinados por medio de tuberias Eventualmente el programa aparecio en otras encarnaciones como por ejemplo en DOS actuando como herramienta de apoyo a compiladores Han existido varios intentos para darle una interfaz grafica al programa pero hasta ahora grep sigue siendo utilizado principalmente en lineas de comandos mezclado con otros programas como tail ps y less La version mas popular es GNU grep que esta disponible para diversos sistemas operativos entre ellos GNU Linux y existe el proyecto Gnuwin32 que proporciona una version de grep para Windows 2 Funcionamiento Editargrep generalmente ejecuta alguna variante del algoritmo Boyer Moore para busqueda de strings utilizando expresiones regulares para definir la consulta Puede manejar archivos directorios y subdirectorios o la entrada estandar stdin El programa es configurable por medio de opciones de invocacion pudiendo por ejemplo mostrar las lineas con aciertos desaciertos el contexto de la coincidencia etc Ejemplos EditarPara mostrar todas las lineas que contienen la cadena tal en una lista de archivos donde representa todos los archivos en el directorio actual grep tal Para mostrar todas las lineas que no contengan la cadena tal se usa v grep v tal Para mostrar solo el nombre de tales archivos se usa l grep l tal Para mostrar solo el nombre de los archivos que no contienen la cadena se usa L grep L tal Para buscar recursivamente no solo en los archivos del directorio actual sino tambien en los de sus subdirectorios donde representa el directorio actual se usa r grep r tal En solaris no funciona el parametro r Para obtener la misma funcionalidad se debe utilizar ademas el comando find y el comando exec Recordemos el parametro l mostrara unicamente el nombre del archivo que contenga la cadena tal find name exec grep l tal La opcion r puede no estar disponible en todas las plataformas Unix Se debe utilizar asi find type f xargs grep tal Para buscar todas las lineas que comienzan por Ahora y terminan con siempre seguido de una cantidad arbitraria de espacio en blanco notese que el caracter representa el inicio de la linea asi como representa el final grep Ahora siempre Para hacer que grep lea de la entrada estandar no se especifica archivo alguno Por ejemplo como ps ef lista todos los procesos actualmente en ejecucion el siguiente comando imprime todos los procesos que esta ejecutando el usuario actual ps ef grep USER o ps efa grep USER Mostrara las cuentas de usuarios que presenten actividad en ese momento Variantes Editar Existen muchos derivados de grep por ejemplo agrep que significa approximate grep grep aproximado que sirve para hacer una busqueda aproximada de cadenas fgrep para buscar patrones fijos egrep para busquedas que involucren expresiones regulares mas complejas y tcgrep que utiliza la sintaxis de expresiones regulares de Perl Todas estas variantes de grep han sido llevadas a diversos sistemas operativos Muchos otros comandos contienen la cadena grep Por ejemplo pgrep que muestra los procesos cuyos nombres encajan con cierta expresion regular En Perl existe la funcion grep que recibe una expresion regular y una lista y devuelve los elementos de la lista que encajan con dicha expresion El sistema Windows tiene una utilidad llamada findstr que se aproxima a las funciones de grep El programa de maquetacion Adobe InDesign tambien incluye las funcionalidades de GREP desde 2007 con la version CS3 en adelante en los apartados de Expresiones GREP en buscar y cambiar 3 y Estilos GREP en estilos de parrafo 4 Referencias Editar Cassel David 22 de julio de 2018 Brian Kernighan Remembers the Origins of grep html The New Stack en ingles Archivado desde el original el 23 de julio de 2018 Consultado el 25 de julio de 2018 ed let you specify regular expressions which appeared between slashes along with some operations specified outside those slashes to perform on the lines which matched The operations were often indicated with a single letter like p for print or a for append And there was also a g flag which stood for global and would perform a command not just on one line but on every line of a file that matched the specified regular expression For example that print command p And if you wrote out that command with g for global and p for print applying it to a regular expression between the slashes it would look like this g re p grep para Windows Ayuda de InDesign buscar cambiar Consultado el 12 de agosto de 2016 Ayuda de InDesign Estilos GREP Consultado el 12 de agosto de 2016 Vease tambien EditarExpresion regularEnlaces externos EditarGNU grep aleman grep 1 Comandos generales en el Manual de Debian GNU grep el grep que viene con las distribuciones GNU Linux manual de grep en ingles documentacion de texinfo en ingles Documentacion en ingles 12 ejemplos practicos del comando grep Datos Q283302 Multimedia Grep Obtenido de https es wikipedia org w index php title Grep amp oldid 137745177, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos