GREP(1) - Órdenes de usuario¶
NOMBRE¶
grep - muestra líneas que concuerdan con un patrón
SINOPSIS¶
grep [OPCIÓN...] PATRONES [ARCHIVO...]
grep [OPCIÓN...] -e PATRONES ... [ARCHIVO...]
grep [OPCIÓN...] -f ARCHIVO_PATRÓN ... [ARCHIVO...]
DESCRIPCIÓN¶
grep busca PATRONES en cada ARCHIVO. PATRONES consistirá en uno o más patrones separados entre sí por un salto de línea; grep mostrará cada línea donde encuentre una concordancia con dicho patrón. En general, deben entrecomillarse los patrones si se ejecuta grep dentro de otra orden de la shell.
Si definimos ARCHIVO como '-', se considerará la entrada estándar. Si no se define ningún valor para ARCHIVO, se hará una búsqueda recursiva del directorio actual y no recursiva de la entrada estándar.
OPCIONES¶
Información genérica de la aplicación¶
--help- Muestra una breve instrucción de uso y finaliza.-V, --version- Muestra la versión de grep y termina.
Sintaxis del patrón¶
-E, --extended-regexp- Interpreta PATRONES como una expresión regular extendida.-F, --fixed-strings- Interpreta PATRONES como una cadena de texto, no como expresiones regulares.-G, --basic-regexp- Interpreta PATRONES como una expresión regular básica. Éste es el comportamiento predeterminado.-P, --perl-regexp- Interpreta PATRONES como un expresión regular de Perl (PCRE). Esta opción aún es experimental si se combina con -z (--vacío), grep -P puede emitir avisos acerca de funciones no implementadas.
Gestión de las concordancias¶
-e PATRONES, --regexp=PATRONES- Emplea PATRONES como patrones. Si se usa varias veces o se combina con la opción -f (--file) la búsqueda se realizará con todos los patrones dados. Esta opción es útil para proteger un patrón que comience por '-'.-f ARCHIVO, --file=ARCHIVO- Obtiene el patrón de ARCHIVO, uno de cada línea. Si se emplea esta opción varias veces o se combina con -e (--regexp) realiza la búsqueda con todos los patrones que se indiquen. Un archivo vacío contiene cero patrones y no concordará con nada. Si ARCHIVO es -, tomará los patrones desde la entrada estándar.-i, --ignore-case- No distingue entre mayúsculas y minúsculas tanto en los patrones como en los datos de entrada.--no-ignore-case- Distingue entre mayúsculas y minúsculas (comportamiento por defecto).-v, --invert-match- Invierte el sentido de la concordancia, seleccionando las líneas que no concuerden.-w, --word-regexp- Selecciona solamente aquellas líneas que contienen concordancias que forman palabras completas.-x, --line-regexp- Selecciona únicamente las líneas que concuerden completa y exactamente en su totalidad con el patrón.
Gestión general de la salida¶
-c, --count- Suprime la salida normal; en su lugar muestra el número de líneas que concuerdan con el patrón para cada archivo de entrada.--color[=CUANDO], --colour[=CUANDO]- Rodea las cadenas concordantes con secuencias de escape para mostrarlas en distintos colores.-L, --files-without-match- Muestra el nombre de cada archivo de entrada donde no se encuentre ninguna concordancia.-l, --files-with-matches- Muestra el nombre de cada fichero de entrada que produciría alguna salida.-m NÚM, --max-count=NÚM- Deja de leer un archivo al alcanzar la cantidad de NUM líneas concordantes.-o, --only-matching- Muestra sólo la parte coincidente con el patrón de una línea concordante.-q, --quiet, --silent- Mínima salida. No muestra nada en la salida estándar.-s, --no-messages- Suprime los mensajes de error sobre archivos que no existen o no se pueden leer.
Muestra un prefijo de control en cada línea¶
-b, --byte-offset- Muestra el desplazamiento de bytes dentro del archivo de entrada.-H, --with-filename- Muestra el nombre del archivo donde se produjo la concordancia.-h, --no-filename- No muestra los nombres de archivo antes de cada línea.--label=ETIQUETA- Muestra la entrada proveniente de la entrada estándar como entrada proveniente del archivo LABEL.-n, --line-number- Antepone a cada línea mostrada el número de línea de su archivo de entrada.-T, --initial-tab- Se asegura que el primer carácter de la línea actual esté en una tabulación.-Z, --null- Muestra un byte cero (el carácter ASCII NUL) en lugar del carácter que habitualmente seguiría al nombre de un archivo.
Gestión de Líneas Contextuales¶
-A NÚM, --after-context=NÚM- Imprime NUM líneas de contexto posterior después de las líneas concordantes.-B NÚM, --before-context=NÚM- Imprime NUM cantidad de líneas de contexto respecto de la concordante.-C NÚM, -NÚM, --context=NÚM- Muestra NUM líneas contextuales.--group-separator=SEP- Cuando se usen las opciones -A, -B o -C, emplea SEP en lugar de -- entre los distintos grupos de líneas.--no-group-separator- Cuando se usen las opciones -A, -B o -C, no me mostrará ningún separador entre líneas.
Selección de archivos y directorios¶
-a, --text- Procesa un archivo binario como si se tratase de texto.--binary-files=TIPO- Si los datos o metadatos de un archivo indican que su contenido es binario, asume que dicho archivo es del tipo TIPO.-D ACCIÓN, --devices=ACCIÓN- Emplea ACCIÓN para procesar un archivo de entrada si es un dispositivo, un FIFO o un socket.-d ACCIÓN, --directories=ACCIÓN- Emplea ACCIÓN para procesar el archivo de entrada si éste es un directorio.--exclude=GLOB- Omite cualquier archivo de línea de órdenes con una extensión que coincida con el patrón GLOB.--exclude-from=ARCHIVO- Ignora archivos cuya base del nombre coincida con alguna de las expresiones contenidas en ARCHIVO.--exclude-dir=GLOB- Salta cualquier directorio cuyo sufijo concuerde con el patrón GLOB.-I- Procesa un archivo binario como si no contuviese ninguna concordancia.--include=GLOB- Busca solo archivos cuyo nombre base coincida con GLOB.-r, --recursive- Lee recursivamente todos los archivos dentro de cada directorio.-R, --dereference-recursive- Lee recursivamente todos los archivos dentro de cada directorio. Sigue todos los enlaces simbólicos.
Otras opciones¶
--line-buffered- Emplea el bufer de línea para la salida. Puede provocar un descenso del rendimiento.-U, --binary- Trata el(los) fichero(s) como binario(s).-z, --null-data- Considera los datos de entrada y salida como secuencias de líneas, cada una terminada con un byte cero.
EXPRESIONES REGULARES¶
Una expresión regular es un patrón que describe un conjunto de cadenas de caracteres. Las expresiones regulares se construyen de forma análoga a las expresiones aritméticas, combinando expresiones más pequeñas mediante ciertos operadores para formar expresiones complejas.
grep interpreta tres versiones diferentes de la sintaxis de expresiones regulares: "básico" (BRE), "extendido" (ERE) y "perl" (PCRE).
Grupos de caracteres y Expresiones entre Corchetes¶
Una expresión entre corchetes es una lista de caracteres encerrados entre [ y ]. Coincide con cualquier carácter de esa lista. Si el primer carácter de la lista es el símbolo de intercalación ^, entonces coincide con cualquier carácter que NO esté en la lista.
Anclado¶
El símbolo de intercalación (caret en inglés) ^ y el dólar $ son metacaracteres que concuerdan respectivamente con una cadena vacía al inicio y al final de una línea.
La Barra Invertida y otras Expresiones Especiales¶
Los símbolos \< y > concuerdan con una cadena vacía al inicio y al final de una palabra, respectivamente. El símbolo \b concuerda con una cadena vacía en los extremos de una palabra.
Repetición¶
Una expresión regular que concuerde con un solo carácter puede ser seguida por uno de estos varios operadores de repetición:
?- El elemento precedente es opcional y concuerda como mucho una vez.*- El elemento precedente concordará cero o más veces.+- El elemento precedente concordará una o más veces.{n}- El elemento precedente concuerda exactamente n veces.{n,}- El elemento precedente concuerda n o más veces.{,m}- El elemento precedente concuerda un máximo de m veces.{n,m}- El elemento precedente concuerda como poco n veces, pero no más de m veces.
ESTADO DE SALIDA¶
El estado de salida suele ser 0 si se ha seleccionado alguna línea, 1 si no se ha seleccionado ninguna y 2 si ha ocurrido algún error.
ENTORNO¶
El comportamiento de grep está influido por variables de entorno como GREP_COLORS, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LANG y POSIXLY_CORRECT.
NOTAS¶
Esta página de manual no se mantiene de forma rigurosa. La documentación completa suele estar más actualizada.
EJEMPLO¶
El siguiente ejemplo mostrará la ubicación y el contenido de cualquier línea que contenga "f" y termine en ".c", dentro de todos los archivos en el directorio actual cuyos nombres contengan "g" y terminen en ".h":
$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* definiciones y prototipos para argmatch.c
VÉASE TAMBIÉN¶
awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)
Documentación Completa¶
Está disponible un manual completo https://www.gnu.org/software/grep/manual/ grep, la orden
info grep
debería mostrarle el manual completo.
TRADUCCIÓN¶
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García gerardo.aburruzaga@uca.es y Marcos Fouces marcos@debian.org
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.
GNU grep 3.11 2019-12-29 GREP(1)