.\" -*- coding: UTF-8 -*-
.de dT
.ds Dt \\$2
..
.\" GNU grep man page
.dT Time-stamp: 2019-12-29
.\" Update the above date whenever a change to either this file or
.\" grep.c's 'usage' function results in a nontrivial change to the man page.
.\" In Emacs, you can update the date by running 'M-x time-stamp'
.\" after you make a change that you decide is nontrivial.
.\" It is no big deal to forget to update the date.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH GREP 1 \*(Dt "GNU grep 3.11" "Órdenes de usuario"
.
.if !\w|\*(lq| \{\
.\" groff an-old.tmac does not seem to be in use, so define lq and rq.
. ie \n(.g \{\
. ds lq \(lq\"
. ds rq \(rq\"
. \}
. el \{\
. ds lq ``
. ds rq ''
. \}
.\}
.
.if !\w|\*(la| \{\
.\" groff an-ext.tmac does not seem to be in use, so define the parts of
.\" it that are used below. For a copy of groff an-ext.tmac, please see:
.\" https://git.savannah.gnu.org/cgit/groff.git/plain/tmac/an-ext.tmac
.\" --- Start of lines taken from groff an-ext.tmac
.
.\" Check whether we are using grohtml.
.nr mH 0
.if \n(.g \
. if '\*(.T'html' \
. nr mH 1
.
.
.\" Map mono-width fonts to standard fonts for groff's TTY device.
.if n \{\
. do ftr CR R
. do ftr CI I
. do ftr CB B
.\}
.
.\" groff has glyph entities for angle brackets.
.ie \n(.g \{\
. ds la \(la\"
. ds ra \(ra\"
.\}
.el \{\
. ds la <\"
. ds ra >\"
. \" groff's man macros control hyphenation with this register.
. nr HY 1
.\}
.
.\" Start URL.
.de UR
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End URL.
.de UE
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.
.
.\" Start email address.
.de MT
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End email address.
.de ME
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.\" --- End of lines taken from groff an-ext.tmac
.\}
.
.hy 0
.
.SH NOMBRE
grep \- muestra líneas que concuerdan con un patrón
.
.SH SINOPSIS
\fBgrep\fP [\fIOPCIÓN\fP.\|.\|.]\& \fIPATRONES\fP [\fIARCHIVO\fP.\|.\|.]
.br
\fBgrep\fP [\fIOPCIÓN\fP.\|.\|.]\& \fB\-e\fP \fIPATRONES\fP \&.\|.\|.\&
[\fIARCHIVO\fP.\|.\|.]
.br
\fBgrep\fP [\fIOPCIÓN\fP.\|.\|.]\& \fB\-f\fP \fIARCHIVO_PATRÓN\fP \&.\|.\|.\&
[\fIARCHIVO\fP.\|.\|.]
.
.SH DESCRIPCIÓN
\fBgrep\fP busca \fIPATRONES\fP en cada \fIARCHIVO\fP. \fIPATRONES\fP consistirá en uno
o más patrones separados entre sí por un salto de línea; \fBgrep\fP mostrará
cada línea donde encuentre una concordancia con dicho patrón. En general,
deben entrecomillarse los patrones si se ejecut \fBgrep\fP dentro de otra orden
de la shell.
.PP
Si definimos \fIARCHIVO\fP como '\fB\-\fP', se considerará la entrada estándar. Si
nose define ningún valor para \fIARCHIVO\fP, se hará una búsqueda recursiva del
directorio actual y no recursiva de la entrada estándar.
.
.SH OPCIONES
.SS "Información genérica de la aplicación"
.TP
\fB\-\^\-help\fP
Muestra una breve instrucción de uso y finaliza.
.TP
\fB\-V\fP, \fB\-\^\-version\fP
Muestra la versión de \fBgrep\fP y termina.
.SS "Sintaxis del patrón"
.TP
\fB\-E\fP, \fB\-\^\-extended\-regexp\fP
Interpreta \fIPATRONES\fP como una expresión regular extendida (vea más
adelante).
.TP
\fB\-F\fP, \fB\-\^\-fixed\-strings\fP
Interpreta \fIPATRONES\fP como una cadena de texto, no como expresiones
regulares.
.TP
\fB\-G\fP, \fB\-\^\-basic\-regexp\fP
Interpreta \fIPATRONES\fP como una expresión regular básica (vea más
abajo). Éste es el comportamiento predeterminado.
.TP
\fB\-P\fP, \fB\-\^\-perl\-regexp\fP
Interpreta \fIPATRONES\fP como un expresión regular de Perl (PCRE). Esta opción
aún es experimental si se combina con \fB\-z\fP (\fB\-\^\-vacío\fP), \fBgrep \-P\fP puede
emitir avisos acerca de funciones no implementadas.
.SS "Gestión de las concordancias"
.TP
\fB\-e\fP\fI PATRONES\fP,\fB \-\^\-regexp=\fP\fIPATRONES\fP
Emplea \fIPATRONES\fP como patrones. Si se usa varias veces o se combina con la
opción \fB\-f\fP (\fB\-\^\-file\fP) la búsqueda se realizará con todos los patrones
dado. Esta opción es útil para proteger un patrón que comience por '\-'.
.TP
\fB\-f\fP\fI ARCHIVO\fP,\fB \-\^\-file=\fP\fIARCHIVO\fP
Obtiene el patrón de \fIARCHIVO\fP, uno de cada línea. Si se emplea esta opción
varias veces o se combina con \fB\-e\fP (\fB\-\^\-regexp\fP) realiza la búsqueda con
todos los patrones que se indiquen. Un archivo vacío contiene cero patrones
y no concordará con nada. Si \fIARCHIVO\fP es \fB\-\fP, tomará los patrones desde
la entrada estándar.
.TP
\fB\-i\fP, \fB\-\^\-ignore\-case\fP
No distingue entre mayúsculas y minúsculas tanto en los patrones como en los
datos de entrada, así que los caracteres que sólo difieran en este aspecto
resultarán en una coincidencia.
.TP
\fB\-\^\-no\-ignore\-case\fP
Distingue entre mayúsculas y minúsculas tanto en los patrones como en los
datos de entrada (comportamiento por defecto). Esta opción es útil en el
caso de emplearse en scripts de shell donde se haya definido previamente la
opción \fB\-i\fP ya que ambas opciones se anulan entre sí.
.TP
\fB\-v\fP, \fB\-\^\-invert\-match\fP
Invierte el sentido de la concordancia, seleccionando las líneas que no
concuerden.
.TP
\fB\-w\fP, \fB\-\^\-word\-regexp\fP
Selecciona solamente aquellas líneas que contienen concordancias que forman
palabras completas. La comprobación consiste en que la cadena de caracteres
concordante debe estar al principio de la línea o precedida por un carácter
que no forme parte de una palabra. De forma similar, debe estar o al final
de la línea o ser seguida por un carácter no constituyente de palabra. Los
caracteres que se consideran como parte de palabras son letras, dígitos y el
subrayado. No tiene efecto si también de define la opción \fB\-x\fP.
.TP
\fB\-x\fP, \fB\-\^\-line\-regexp\fP
Selecciona únicamente las línea que concuerden completa y exactamente en su
totalidad con el patrón. Equivaldría, en el caso de una expresión regular, a
definir el patrón entre paréntesis comenzando con \fB^\fP y finalizando con
\fB$\fP.
.SS "Gestión general de la salida"
.TP
\fB\-c\fP, \fB\-\^\-count\fP
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. Con la opción \fB\-v\fP,
\fB\-\^\-invert\-match\fP, contabiliza el número de líneas que no concuerdan.
.TP
\fB\-\^\-color\fP[\fB=\fP\fICUANDO\fP], \fB\-\^\-colour\fP[\fB=\fP\fICUANDO\fP]
Rodea las cadenas concordantes (que no estén en blanco), líneas
concordantes, nombres de archivo, números de línea, bytes de compensación y
separadores (para los campos y grupos de líneas contextuales) con secuencias
de escape para mostrarlas en distintos colores a través del terminal. Dichos
colores se definen a través de la variable de entorno \fBGREP_COLORS\fP. Los
colores se definen mediante las variables de entorno . \fICUANDO\fP puede tener
tres valores diferentes: \fBnever\fP (nunca), \fBalways\fP (siempre) o \fBauto\fP.
.TP
\fB\-L\fP, \fB\-\^\-files\-without\-match\fP
Suprime la salida normal; en su lugar muestra el nombre de cada archivo de
entrada donde no se encuentre ninguna concordancia y por lo tanto de cada
fichero que no produciría ninguna salida.
.TP
\fB\-l\fP, \fB\-\^\-files\-with\-matches\fP
Suprime la salida normal; en su lugar muestra el nombre de cada fichero de
entrada que produciría alguna salida. La búsqueda de cada entrada se
detendrá en la primera concordancia.
.TP
\fB\-m\fP\fI NÚM\fP,\fB \-\^\-max\-count=\fP\fINÚM\fP
Deja de leer un archivo al alcanzar la cantidad de \fINUM\fP líneas
concordantes. Si \fINUM\fP es cero, \fBgrep\fP se detiene de inmediato sin leer
ninguna entrada. Si \fINUM\fP es \-1, se considera como infinito y \fBgrep\fP nunca
se detiene; éste es el comportamiento por defecto. Si la entrada es un
archivo corriente y la salida son las \fINUM\fP líneas concordantes, \fBgrep\fP
hará que el archivo de entrada quede posicionado justo después de la última
línea concordante sin importar la existencia de alguna línea contextual
posterior. Así, un proceso posterior podrá continuar con la búsqueda. Cuando
\fBgrep\fP se detiene después de encontrar \fINUM\fP líneas concordantes, mostrará
sus líneas contextuales. Si se usa la opción \fB\-c\fP o \fB\-\^\-count\fP, nunca se
mostrará un recuento superior a \fINUM\fP. Con la opción \fB\-v\fP o
\fB\-\^\-invert\-match\fP, la ejecución de \fBgrep\fP se detendrá una vez mostradas
\fINUM\fP líneas no concordantes.
.TP
\fB\-o\fP, \fB\-\^\-only\-matching\fP
Muestra sólo la parte coincidente con el patrón de una línea concordante,
siempre que no sea una cadena vacía y poniendo cada parte en una línea
diferente.
.TP
\fB\-q\fP, \fB\-\^\-quiet\fP, \fB\-\^\-silent\fP
Mínima salida. No muestra nada en la salida estándar. Termina con estado
cero si encuentra alguna concordancia aunque detecte algún error. Consulte
también la opción \fB\-s\fP o \fB\-\^\-no\-messages\fP.
.TP
\fB\-s\fP, \fB\-\^\-no\-messages\fP
Suprime los mensajes de error sobre archivos que no existen o no se pueden
leer.
.SS "Muestra un prefijo de control en cada línea"
.TP
\fB\-b\fP, \fB\-\^\-byte\-offset\fP
Muestra el desplazamiento de bytes, comenzando en cero, dentro del archivo
de entrada antes de cada línea mostrada. Si se define \fB\-o\fP
(\fB\^\-only\-matching\fP), muestra el desplazamiento de la parte concordante.
.TP
\fB\-H\fP, \fB\-\^\-with\-filename\fP
Muestra el nombre del archivo donde se produjo la concordancia. Esto se hará
por defecto cuando se busque en más de un archivo. Es una extensión de GNU.
.TP
\fB\-h\fP, \fB\-\^\-no\-filename\fP
No muestra los nombres de archivo antes de cada línea. Es el comportamiento
por defecto cuando se realiza la búsqueda en un solo archivo o en la entrada
estandar.
.TP
\fB\-\^\-label=\fP\fIETIQUETA\fP
Muestra la entrada provienente de la entrada estándar como entrada
proveniente del archivo \fILABEL\fP. Esto puede ser útil para las órdenes que
transforman el contenido de un archivo antes de realizar la búsqueda. Por
ejemplo: \fBgzip \-cd foo.gz | grep \-\-label=foo \-H 'algún patrón'\fP. Consulte
también la opción \-H.
.TP
\fB\-n\fP, \fB\-\^\-line\-number\fP
Antepone a cada línea mostrada el número de línea de su archivo de entrada
correspondiente comenzando por el 1.
.TP
\fB\-T\fP, \fB\-\^\-initial\-tab\fP
Se asegura que el primer carácter de la línea actual esté en una tabulación,
de modo que la alíneación de las tabulaciones parezca normal. Esto es útil
con las opciones que anteponen su salida al contenido real: \fB\-H\fP, \fB\-n\fP y
\fB\-b\fP. Para incrementar la probabilidad de que todas las líneas de un mismo
archivo comiencen en la misma columna, también hace que el número de línea y
el desplazamiento de bytes (si existe) se impriman en un ancho de campo
mínimo.
.TP
\fB\-Z\fP, \fB\-\^\-null\fP
Muestra un byte cero (el carácter ASCII \fBNUL\fP) en lugar del carácter que
habitualmente seguiría al nombre de un archivo. Por ejemplo: \fBgrep \-lZ\fP
genera un byte cero después de cada nombre de archivo en lugar del salto de
línea habitual. Esta opción hace que la salida no sea ambigua, incluso con
nombres de archivo que contengan caracteres poco usuales como saltos de
línea. Esta opción se puede usar con órdenes como \fBfind \-print0\fP, \fBperl \-0\fP, \fBsort \-z\fP y \fBxargs \-0\fP para procesar nombres de archivos arbitrarios,
incluso aquellos que contienen saltos de línea en su nombre.
.SS "Gestión de Líneas Contextuales"
.TP
\fB\-A\fP\fI NÚM\fP,\fB \-\^\-after\-context=\fP\fINÚM\fP
Imprime \fINUM\fP líneas de contexto posterior después de las líneas
concordantes. Coloca una línea que contiene un separador de grupo (\fB\-\^\-\fP)
entre grupos contiguos de coincordancias. Con la opción \fB\-o\fP o
\fB\-\^\-only\-matching\fP, se emitirá un mensaje de advertencia y no tendrá
ningún efecto.
.TP
\fB\-B\fP\fI NÚM\fP,\fB \-\^\-before\-context=\fP\fINÚM\fP
Imprime \fINUM\fP cantidad de líneas de contexto respecto de la
concordante. Añade un separador (\fB\-\^\-\fP) entre grupos de concordancias. Si
se emplea con la opción \fB\-o\fP o \fB\-\^\-only\-matching\fP, no tendrá ningún
efecto y se emitirá un aviso.
.TP
\fB\-C\fP\fI NÚM\fP,\fB \-\fP\fINÚM\fP,\fB \-\^\-context=\fP\fINÚM\fP
Muestra \fINUM\fP líneas contextuales. Inserta una línea con un separador
(\fB\-\[ -\fP) entre grupos contiguos de concordancias. Si se usa la opción
\fB-o\fP o \fB-\^-only-matching\fP, se emite un mensaje de advertencia y no tendrá
ningún efecto.
.TP
\fB\-\^\-group\-separator=\fP\fISEP\fP
Cuando se usen las opciones \fB\-A\fP, \fB\-B\fP o \fB\-C\fP, emplea \fISEP\fP en lugar de
\fB\-\^\-\fP entre los distintos grupos de líneas.
.TP
\fB\-\^\-no\-group\-separator\fP
Cuando se usen las opciones \fB\-A\fP, \fB\-B\fP o \fB\-C\fP, no me mostrará ningún
separador entre líneas.
.SS "Selección de archivos y directorios"
.TP
\fB\-a\fP, \fB\-\^\-text\fP
Procesa un archivo binario como si se tratase de texto. Equivale a la opción
\fB\-\^\-binary\-files=text\fP.
.TP
\fB\-\^\-binary\-files=\fP\fITIPO\fP
Si los datos o metadatos de un archivo indican que su contenido es binario,
asume que dicho archivo es del tipo \fITIPO\fP. Los bytes que no codifican
texto, indican que el contenido es binario; estos podrán ser bytes
incorrectamente codificados para la localización en uso o bytes nulos si no
se indicó la opción \fB\-z\fP.
.IP
Por defecto, \fITIPO\fP se considera \fBbinary\fP, con lo cual \fBgrep\fP elimina
cualquier salida si se encuentra con datos binarios o datos incorrectamente
codificados. Cada vez que se elimina algo en la salida, \fBgrep\fP mostrará un
mensaje en la salida de error estándar informando de la concordancia con un
archivo binario.
.IP
Si \fITIPO\fP es \fBwithout\-match\fP, \fBgrep\fP asumirá que no hay concordancia
alguna en el resto del archivo si se encuentra contenido nulo binarios. Esto
equivale a la opción \fB\-I\fP.
.IP
Si \fITIPO\fP es \fBtexto\fP, \fBgrep\fP procesará un archivo binario como si se
tratase de texto. Equivale a la opción \fB\-a\fP.
.IP
Cuando el \fItipo\fP es \fBbinario\fP, \fBgrep\fP puede tratar los bytes no\-textuales
como terminadores de línea incluso sin la opción \fB\-z\fP. Esto significa que
elegir \fBbinario\fP frente a \fBtexto\fP puede afectar si un patrón coincide con
un archivo. Por ejemplo, cuando \fItipo\fP es \fBbinario\fP, el patrón \fBq$ podría\fP coincidir con \fBq\fP seguido inmediatamente de un byte nulo, aunque
esto no concorde cuando el \fItipo\fP es \fBtexto\fP. Por el contrario, cuando el
\fItipo\fP es \fBbinario\fP, el patrón \fB.\&\fP (punto) puede no coincidir con un
byte nulo.
.IP
\fIAVISO:\fP La opción \fB\-a\fP puede mostrar contenido binario sin sentido lo que
puede tener efectos adversos si dicho contenido se muestra a través de un
terminal y éste interpreta que son órdenes. Por otra parte, esta opción es
útil a la hora de leer archivos cuya codificación se desconoce (también
definir \fBLC_ALL='C'\fP) porque así se pueden encontrar más concordancias
aunque no sea seguro mostrarlas directamente.
.TP
\fB\-D\fP\fI ACCIÓN\fP,\fB \-\^\-devices=\fP\fIACCIÓN\fP
emplea \fIACCIÓN\fP para procesar un archivo de entrada si es un dispositivo,
un FIFO o un socket. Por defecto, \fIACCIÓN\fP será \fBread\fP por lo que estos
dispositivos, serán leído como un archivo corriente. Si \fIACCIÓN\fP es
\fBskip\fP, los dispositivos serán descartados sin ningún aviso.
.TP
\fB\-d\fP\fI ACCIÓN\fP\fB, \-\-directories=\fP\fIACCIÓN\fP
Emplea \fIACCIÓN\fP para procesar el archivo de entrada si éste es un
directorio. Por defecto, esta \fIACCIÓN\fP es \fBread\fP (leer), esto es que leerá
directorios tal como si fuesen archivos. Si \fIACCIÓN\fP es \fBskip\fP, se saltará
los directorios sin emitir ningún mensaje. Por último, si \fIACCIÓN\fP es
\fBrecurse\fP, leerá de forma recusiva todos los archivos que se encuentren
dentro de cada directorio siguiendo los enlaces simbólicos sólo si se
indican en la línea de órdenes. Esto equivaldría a definir la opción \fB\-r\fP.
.TP
\fB\-\^\-exclude=\fP\fIGLOB\fP
Omite cualquier archivo de línea de órdenes con una extensión que coincida
con el patrón \fIGLOB\fP, utilizando la concordancia de comodines; una
extesnión de nombre es el nombre completo o una parte final que comienza con
un carácter que no es una barra inmediatamente después de una barra (\fB/\fP)
en el nombre. Cuando realice una búsqueda recursiva, omita cualquier
subarchivo cuyo nombre base coincida con \fIGLOB\fP; el nombre base es la parte
después de la última barra. Un patrón puede usar \fB*\fP, \fB?\fP y
\fB[\fP.\|.\|.\fB]\&\fP como comodines, y \fB\e\fP para citar un comodín o carácter
de barra invertida literalmente.
.TP
\fB\-\^\-exclude\-from=\fP\fIARCHIVO\fP
Ignora archivos cuya base del nombre coincida con alguna de las expresiones
contenidas en \fIARCHIVO\fP (empleando concordancias tal como se describió en
\fB\-\^\-exclude\fP).
.TP
\fB\-\^\-exclude\-dir=\fP\fIGLOB\fP
Salta cualquier directorio cuyo sufijo concuerde con el patrón
\fIGLOB\fP. Cuando se hace una búsqueda recursiva, saltará cualquier
subdirectorio cuya base del nombre concuerde con \fIGLOB\fP. No tiene en cuenta
las barras al final de \fIGLOB\fP.
.TP
\fB\-I\fP
Procesa un archivo binario como si no contuviese ninguna
concordancia. Equivale a la opción \fB\-\^\-binary\-files=without\-match\fP.
.TP
\fB\-\^\-include=\fP\fIGLOB\fP
Busque solo archivos cuyo nombre base coincida con \fIGLOB\fP (usando la
concordancia de comodines como se describe en \fB\-\^\-exclude\fP). Si se dan
opciones contradictorias \fB\-\^\-include\fP y \fB\-\^\-exclude\fP, prevalecerá la
última que coincida. Si ninguna opción \fB\-\^\-include\fP o \fB\-\^\-exclude\fP
coincide, se incluye un archivo a menos que la primera opción sea
\fB\-\^\-include\fP.
.TP
\fB\-r\fP, \fB\-\^\-recursive\fP
Lee recursivamente todos los archivos dentro de cada directorio, sigue
enlaces simbólicos sólo si están en la línea de órdenes. Observe que si no
se indica ningún archivo, \fBgrep\fP buscará en el directorio actual. Equivale
a la opción \fB\-d recurse\fP.
.TP
\fB\-R\fP, \fB\-\^\-dereference\-recursive\fP
Lee recursivamente todos los archivos dentro de cada directorio. Sigue todos
los enlaces simbólicos a diferencia de \fB\-r\fP.
.SS "Otras opciones"
.TP
\fB\-\^\-line\-buffered\fP
Emplea el bufer de línea para la salida. Puede provocar un descenso del
rendimiento.
.TP
\fB\-U\fP, \fB\-\^\-binary\fP
Trata el(los) fichero(s) como binario(s). De forma predeterminada, en MS\-DOS
y MS\-Windows, \fBgrep\fP intenta adivinar el tipo de archivo tal como se
describe para la opción \fB\-\^\-binary\-files\fP. Si \fBgrep\fP decide que el
fichero es de texto, quita los caracteres CR (retorno de carro) de los
contenidos originales del fichero (para que las expresiones regulares con
\fB^\fP y \fB$\fP funcionen correctamente). Al especificar \fB\-U\fP deshabilitamos
este intento de adivinación del tipo del fichero, haciendo que todos se lean
y pasen al mecanismo de concordancia tal cuales; si el fichero lo es de
texto y tiene al final de cada línea el par de caracteres CR/LF, esto hará
que algunas expresiones regulares fallen. Esta opción solo tiene sentido en
MS\-DOS y MS\-Windows.
.TP
\fB\-z\fP, \fB\-\^\-null\-data\fP
Considera los datos de entrada y salida como secuencias de líneas, cada una
terminada con un byte cero (el carácter ASCII NUL) en lugar de una nueva
línea. Al igual que la opción \fB\-Z\fP o \fB\-\^\-null\fP, esta opción se puede usar
con órdenes como \fBsort \-z\fP para procesar nombres de archivos arbitrarios.
.
.SH "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.
.PP
\fBgrep\fP interpreta tres versiones diferentes de la sintaxis de expresiones
regulares: \*(lqbásico\*(rq (BRE), \*(lqextendido\*(rq (ERE) y \*(lqperl\*(rq (PCRE). En GNU
\fBgrep\fP, las expresiones regulares básicas y extendidas son simplemente
notaciones diferentes parala misma funcionalidad de concordancia de
patrones. En otras implementaciones, las básicassuelen ser menos potentes
que las extendidas aunque a veces ocurre l contrario. Se aplica la siguiente
descripción a expresiones regulares extendidas; diferencias para expresiones
regulares básicas se resumen a continuación. Las expresiones regulares de
Perl tienen funcionalidades diferente, y están documentadas en
\fBpcre2syntax\fP(3) y \fBpcre2pattern\fP(3), pero sólo funcionarán si está
habilitada la compatibilidad con PCRE.
.PP
Los bloques de construcción fundamentales son las expresiones regulares que
concuerdan con un solo carácter. La mayoría de los caracteres, incluyendo
todas las letras y dígitos, son expresiones regulares que concuerdan consigo
mismos. Cualquier meta\-carácter con un significado especial debe ser
protegido precediéndolo con una barra inclinada inversa.
.PP
El punto \fB.\&\fP concuerda con un único carácter, cualquiera que sea. No está
definido el comportamiento si se topa con un error de codificación.
.SS "Grupos de caracters y Expresiones entre Corchetes"
Una \fIexpresión entre corchetes\fP es una lista de caracteres encerrados entre
\fB[\fP y \fB]\fP. Coincide con cualquier carácter de esa lista. Si el primer
carácter de la lista es el símbolo de intercalación \fB^\fP, entonces coincide
con cualquier carácter que \fINO\fP esté en la lista; no se especifica si
coincide con un error de codificación. Por ejemplo, la expresión regular
\fB[0123456789]\fP coincidirá con cualquier dígito.
.PP
En el interior de una expresión entre corchetes, una \fIexpresión de intervalo\fP consta de dos caracteres separados por un guión. Coincide con
cualquier carácter individual que se clasifique entre los dos caracteres,
inclusive utilizando la secuencia de clasificación y el conjunto de
caracteres de la configuración regional. Por ejemplo, en la configuración
regional predeterminada de C, \fB[a\-d]\fP es equivalente a \fB[abcd]\fP. Muchas
configuraciones regionales clasifican los caracteres del mismo modo que se
haría en un diccionario y, en estas configuraciones regionales, \fB[a\-d]\fP
normalmente no es equivalente a \fB[abcd]\fP; podría ser equivalente a
\fB[aBbCcDd]\fP, por ejemplo. Para obtener la interpretación tradicional de las
expresiones entre corchetes, puede utilizar la configuración regional C
estableciendo la variable de entorno \fBLC_ALL\fP en el valor \fBC\fP.
.PP
Ciertas clases de caracteres están predefinidas como de expresiones entre
corchetes, como se muestra a continuación. Sus nombres se explican por sí
mismos y son \fB[:alnum:]\fP, \fB[:alpha:]\fP,\fB[:blank:]\fP, \fB[:cntrl:]\fP,
\fB[:digit:]\fP, \fB[:graph:]\fP, \fB[:lower:]\fP, \fB[:print:]\fP, \fB[:punct:]\fP,
\fB[:space:]\fP, \fB[:upper:]\fP y \fB[:xdigit:]\fP. Por ejemplo, \fB[[:alnum:]]\fP hace
referencia a los números y letras en la configuración regional actual. En la
configuración regional C y la codificación del juego de caracteres ASCII,
esto es lo mismo que \fB[0\-9A\-Za\-z]\fP. Tenga en cuenta que los corchetes en
estos nombres de clase son parte de los nombres simbólicos y deben incluirse
además de los corchetes que delimitan la expresión entre corchetes. La
mayoría de los metacaracteres pierden su significado especial dentro de las
expresiones entre corchetes. Para referirse a \fB]\fP, deberá ponerse en el
primer lugar de la lista. De manera similar, para incluir un literal \fB^\fP
colóquelo en cualquier lugar menos en el primero. Para incluir \fB\-\fP,
colóquelo al final.
.SS Anclado
El símbolo de intercalación (caret en inglés) \fB^\fP y el dólar \fB$\fP son
metacaracteres que concuerdan respectivamente con una cadena vacía al inicio
y al final de una línea.
.SS "La Barra Invertida y otras Expresiones Especiales"
Los símbolos \fB\e<\fP y \fB\e>\fP concuerdan con una cadena vacía al
inicio y al fina de una palabra, respetivamente. El símbolo \fB\eb\fP concuerda
con una cadena vacía en los extremos de una palabra y \fB\EB\fP hará lo propio
si dicha cadena vacío \fINO\fP está en los extremos de una palabra. El símbolo
\fB\ew\fP es sinómino de \fB[_[:alnum:]]\fP y \fB\eW\fP lo es de \fB[^_[:alnum:]]\fP.
.SS 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:
.PD 0
.TP
\fB?\fP
El elemento precedente es opcional y concuerda como mucho una vez.
.TP
\fB*\fP
El elemento precedente concordará cero o más veces.
.TP
\fB+\fP
El elemento precedente concordará una o más veces.
.TP
\fB{\fP\fIn\fP\fB}\fP
El elemento precedente concuerda exactamente \fIn\fP veces.
.TP
\fB{\fP\fIn\fP\fB,}\fP
El elemento precedente concuerda \fIn\fP o más veces.
.TP
\fB{,\fP\fIm\fP\fB}\fP
El elemento precedente concuerda un máximo de \fIm\fP veces. Es una extensión
de GNU.
.TP
\fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP
El elemento precedente concuerda como poco \fIn\fP veces, pero no más de \fIm\fP
veces.
.PD
.SS Concatenación
Dos expresiones regulares pueden concatenarse; la expresión regular
resultante concuerda con cualquier cadena formada mediante la concatenación
de dos subcadenas que concuerdan respectivamente con las expresiones
concatenadas.
.SS Alternancia
Dos expresiones regulares pueden juntarse mediante el operador \fB|\fP; la
expresión regular resultante concuerda con cualquier cadena que concuerde
con cualquiera de las expresiones.
.SS Precedencia
La repetición tiene precedencia sobre la concatenación, la cual a su vez
tiene precedencia sobre la alternancia. Una expresión entera puede ser
encerrada entre paréntesis para subvertir estas reglas de precedencia.
.SS "Retroreferencias y Subexpresiones"
La referencia inversa \fB\e\fP\fIn\fP\&, donde \fIn\fP es un único dígito, concordara
con la subcadena previamente concordante con la \fIn\fPésima subexpresión entre
paréntesis de la expresión regular.
.SS "Expresiones Regulares Básicas y Ampliadas"
En las expresiones regulares básicas, los metacaracteres \fB?\fP, \fB+\fP, \fB{\fP,
\fB|\fP, \fB(\fP, y \fB)\fP pierden su significado especial; en su lugar emplee las
versiones protegidas mediante la barra inversa \fB\e?\fP, \fB\e+\fP, \fB\e{\fP,
\fB\e|\fP, \fB\e(\fP, y \fB\e)\fP.
.
.SH "ESTADO DE SALIDA"
El estado de salida suele ser 0 si se ha seleccinado alguna línea, 1 si no
se ha seleccionado ninguna y 2 si ha ocurrido algún error. Sin embargo, si
se indicó la opción \fB\-q\fP o \fB\-\^\-quiet\fP o \fB\-\^\-silent\fP el estado de salida
será cero aunque ocurriese algún error.
.
.SH ENTORNO
El comportamiento de \fBgrep\fP está influido por las siguientes variables de
entorno.
.PP
La configuración regional para la categoría \fBLC_\fP\fIfoo\fP se establece en
base a las tres variables de entorno \fBLC_ALL\fP, \fBLC_\fP\fIfoo\fP y \fBLANG\fP, en
ese orden. La primera de estas variables que esté definida, marcará la
configuración regional. Por ejemplo, si \fBLC_ALL\fP no está definida, pero
\fBLC_MESSAGES\fP sí lo está en \fBpt_BR\fP, entonces se utiliza la configuración
regional portuguesa brasileña para la categoría \fBLC_MESSAGES\fP. La
configuración regional C se utilizará en el caso de que no esté configurada
ninguna de estas variables de entorno, si el catálogo de configuración
regional no está instalado o si \fBgrep\fP no se compiló con soporte de idioma
nacional (NLS). La orden \fBlocale \-a\fP enumera las configuraciones regionales
que están disponibles en un determinado equipo.
.TP
\fBGREP_COLORS\fP
Define cómo se resaltará el resultado con la opción \fB\-\^\-color\fP. Su valor
es una lista de capacidades separadas entre si por dos puntos que, por
defecto, es \fBms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36\fP con las
capacidades booleanas \fBrv\fP y \fBne\fP omitidas (es decir, falsas). Las
capacidades admitidas son las siguientes.
.RS
.TP
\fBsl=\fP
Subcadena SGR para líneas seleccionadas completas (es decir, líneas
concordantes cuando se omite la opción \fB\-v\fP, o líneas que no concuerden
cuando se especifica \fB\-v\fP). Sin embargo, si se especifican la capacidad
booleana \fBrv\fP y la opción \fB\-v\fP, se aplicará a las líneas de concordancia
contextuales. No está definido ningún valor predeterminado, por lo que se
mostrará el par de colores predeterminado del terminal.
.TP
\fBcx=\fP
Subcadena SGR para líneas contextuales completas (es decir, líneas que no
concuerdan cuando se omite la opción \fB\-v\fP, o líneas concordantes cuando se
especifica \fB\-v\fP). Sin embargo, si se definen la capacidad booleana \fBrv\fP y
la opción \fB\-v\fP, se aplicará a las líneas seleccionadas que no
concuerden. No está definido ningún valor predeterminado por lo que se usará
el par de colores predeterminado del terminal.
.TP
\fBrv\fP
Valor booleano que invierte el significado de las capacidades \fBsl=\fP y
\fBcx=\fPcuando se define la opción \fB\-v\fP. Por defecto es falso, es decir que
se omite la capacidad.
.TP
\fBmt=01;31\fP
Subcadena SGR para que concuerde cualquier text no nulo en cualquier línea
concordante (es decir, una línea seleccionada cuando se omite la opción
\fB\-v\fP, o una línea de contexto cuando se especifica \fB\-v\fP). Establecer esto
equivale a establecer \fBms=\fP y \fBmc=\fP a la vez y con el mismo valor. El
valor predeterminado es un texto rojo en negrita sobre el fondo que ya esté
definido.
.TP
\fBms=01;31\fP
Subcadena SGR para que concuerde cualquier texto no nulo en una línea
seleccionada. Esto solo se usa cuando se omite la opción \fB\-v\fP). El efecto
de la capacidad \fBsl=\fP (o \fBcx=\fP si \fBrv\fP) permanece activo cuando esto se
activa. El valor predeterminado es un texto rojo en negrita sobre el fondo
ya configurado.
.TP
\fBmc=01;31\fP
Subcadena SGR para que concuerde cualquier texto no nulo en una línea
contextual. Esto solo se usa cuando se define la opción \fB\-v\fP). El efecto de
la capacidad \fBcx=\fP (o \fBsl=\fP si \fBrv\fP) permanece activo cuando esto se
activa. El valor predeterminado es un texto rojo en negrita sobre el fondo
ya configurado.
.TP
\fBfn=35\fP
Subcadena SGR para nombres de archivos antepuestos a cualquier línea de
contenido. El valor predeterminado es un texto magenta sobre el fondo
predeterminado del terminal.
.TP
\fBln=32\fP
Subcadena SGR para nombres de archivos antepuestos a cualquier línea de
contenido. El valor predeterminado es un texto magenta sobre el fondo
predeterminado del terminal.
.TP
\fBbn=32\fP
Subcadena SGR para desplazamientos de bytes antepuestos a cualquier línea de
contenido. El valor predeterminado es un texto verde sobre el fondo
predeterminado del terminal.
.TP
\fBse=36\fP
Subcadena SGR para separadores que se insertan entre campos de línea
seleccionados (\fB:\fP), entre campos de línea contextuales (\fB\-\fP) y entre
grupos de líneas adyacentes cuando se especifica un contexto distinto de
cero (\fB\-\^\-\fP ). El valor predeterminado es un texto cian sobre el fondo
predeterminado del terminal.
.TP
\fBne\fP
Valor booleano que impide borrar hasta el final de la línea usando Borrar en
línea (EL) a la derecha (\fB\e33[K\fP) cada vez que finaliza un elemento
coloreado. Esto es necesario en terminales en los que EL no es compatible.
Por lo demás, es útil en terminales para los cuales no se aplica la
capacidad booleana terminfo \fBback_color_erase\fP (\fBbce\fP), cuando los colores
de resaltado elegidos no afectan el fondo, o cuando EL es demasiado lento o
causa demasiado parpadeo. El valor predeterminado es 'false', es decir que
se omite esta capacidad.
.PP
Tenga en cuenta que las capacidades booleanas no tienen parte
\fB=\fP.\|.\|.\&. Se omiten (es decir, son falsos) por defecto y pasan a ser
verdaderos cuando se definen.
.PP
Consulte la sección Seleccionar representación gráfica (SGR por sus siglas
en inglés) en la documentación del terminal de texto que se utiliza para los
valores permitidos y su significado como atributos de caracteres. Estos
valores de subcadena son números enteros en representación decimal y ueden
concatenarse mediantes punto y comas. \fBgrep\fP se encarga de unir el
resultado en una secuencia SGR completa (\fB\e33[\fP.\|.\|.\fBm\fP). Los valores
habituales son: \fB1\fP para negrita, \fB4\fP para subrayado, \fB5\fP para parpadeo,
\fB7\fP para inverso, \fB39\fP para color de primer plano predeterminado, \fB30\fP a
\fB37. \fP para colores de primer plano, \fB90\fP a \fB97\fP para colores de primer
plano en modo de 16 colores, \fB38;5;0\fP a \fB38;5;255\fP para colores de primer
plano en modo de 88 y 256 colores , \fB49\fP para el color de fondo
predeterminado, \fB40\fP a \fB47\fP para los colores de fondo, \fB100\fP a \fB107\fP
para los colores de fondo del modo de 16 colores y \fB48;5;0\fP para
\fB48;5;255\fP para colores de fondo en modos de 88 colores y 256 colores.
.RE
.TP
\fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP
Estas variables especifican la configuración regional para la categoría
\fBLC_COLLATE\fP, que determina el método de clasificación empleado para
interpretar expresiones de rango como \fB[a\-z]\fP.
.TP
\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
Estas variables definen la configuración regional para la categoría
\fBLC_CTYPE\fP, que determina el tipo de caracteres, por ejemplo, qué
caracteres son espacios en blanco. Esta categoría también determina la
codificación de caracteres, es decir, si el texto está codificado en UTF\-8,
ASCII o alguna otra codificación. En la configuración regional C o POSIX,
todos los caracteres se codifican como un solo byte y cada byte es un
carácter válido.
.TP
\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
Estas variables definen la configuración regional para la categoría
\fBLC_MESSAGES\fP, que determina el idioma que \fBgrep\fP usa para sus
mensajes. Con la configuración regional predeterminada 'C' se emitirán
mensajes en inglés americano.
.TP
\fBPOSIXLY_CORRECT\fP
Si está definido, el funcionamiento de \fBgrep\fP cumple con POSIX; si no lo
está, \fBgrep\fP funciona de modo más similar a otros programas GNU. POSIX
requiere que las opciones que siguen a los nombres de archivos se traten
como nombres de archivos; De forma predeterminada, dichas opciones se
transladan al inicio de la lista de operandos y se tratan como
opciones. Además, POSIX requiere que las opciones no reconocidas se traten
como 'ilegales', pero como en realidad no lo son, por defecto se tratan como
\&'inválidas'.
.
.SH NOTAS
Esta página de manual no se mantienede forma rigurosa. La documentación
completa suele estar más actualizada.
.
.SH COPYRIGHT
Copyright 1998\-2000, 2002, 2005\-2023 Free Software Foundation, Inc.
.PP
Esto es software libre; consulte el código fuente para concoer las
condiciones de distribución. NO existe garantía alguna; ni siquiera acerca
de la COMERCIALIZACIÓN o la IDONEIDAD DE SU USO PARA UN FIN CONCRETO.
.
.SH ERRORES
.SS "Informar de Errores"
Envíe informes de error a \fIbug\-grep@gnu.org\fP, también puede consultar el
archivo de la lista de correo en
\fIhttps://lists.gnu.org/mailman/listinfo/bug\-grep\fP y el sistema de
seguimiento de errores:
\fIhttps://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep\fP.
.SS "Errores Conocidos"
Números de repetición grandes en la construcción \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP pueden
hacer que \fBgrep\fP emplee grandes cantidades de memoria. En adición a esto,
ciertas otras oscuras expresiones regulares requieren tiempo y espacio
exponenciales, y pueden hacer que \fBgrep\fP se quede sin memoria.
.PP
Las referencias inversas son muy lentas, y pueden requerir un tiempo
exponencial.
.
.SH EJEMPLO
El siguiente ejemplo mostrará la ubicación y el contenido de cualquier línea
que contenga \*(lqf\*(rq y termine en \*(lq.c\*(rq, dentro de todos los archivos en el
directorio actual cuyos nombres contengan \*(lqg\*(rq y terminen en \*(lq.h' '. La
opción \fB\-n\fP genera números de línea, el argumento \fB\-\-\fP trata las
expansiones de \*(lq*g*.h\*(rq que comienzan con \*(lq\-\*(rq como nombres de archivos,en
lugar de considerarlas opciones, y el archivo /dev/null hace que se generen
nombres de archivos incluso si solo un nombre de archivo tiene la forma
\*(lq*g*.h\*(rq.
.PP
.in +2n
.EX
$ \fBgrep\fP \-n \-\- 'f.*\e.c$' *g*.h /dev/null
argmatch.h:1:/* definiciones y prototipos para argmatch.c
.EE
.in
.PP
La única línea que concuerda es la línea 1 de argmatch.h. Tenga en cuenta
que la sintaxis de expresión regular utilizada en el patrón difiere de la
sintaxis que utiliza la shell para que concuerden los nombres de los
archivos.
.
.SH "VÉASE TAMBIÉN"
.SS "Páginas de Manual Genéricas"
\fBawk\fP(1), \fBcmp\fP(1), \fBdiff\fP(1), \fBfind\fP(1), \fBperl\fP(1), \fBsed\fP(1),
\fBsort\fP(1), \fBxargs\fP(1), \fBread\fP(2), \fBpcre2\fP(3), \fBpcre2syntax\fP(3),
\fBpcre2pattern\fP(3), \fBterminfo\fP(5), \fBglob\fP(7), \fBregex\fP(7)
.SS "Documentación Completa"
Está disponible
.UR https://www.gnu.org/software/grep/manual/
un manual
completo
.UE
. Si se instalaron correctamente las aplicaciones \fBinfo\fP y
\fBgrep\fP,la orden
.IP
\fBinfo grep\fP
.PP
debería mostrarle el manual completo.
.
.\" Work around problems with some troff -man implementations.
.br
.
.\" Format for Emacs-maintained Dt string defined at this file's start.
.\" Local variables:
.\" time-stamp-format: "%:y-%02m-%02d"
.\" End:
.PP
.SH TRADUCCIÓN
La traducción al español de esta página del manual fue creada por
Gerardo Aburruzaga García
y
Marcos Fouces
.
.PP
Esta traducción es documentación libre; lea la
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
o posterior con respecto a las condiciones de copyright.
No existe NINGUNA RESPONSABILIDAD.
.PP
Si encuentra algún error en la traducción de esta página del manual, envíe un
correo electrónico a
.MT debian-l10n-spanish@lists.debian.org
.ME .