Comando grep de Linux

En Tipo Unix sistemas operativos, el sujeción El comando procesa el texto línea por línea e imprime cualquier línea que coincida con un patrón específico.
Esta página cubre el GNU / Linux versión de sujeción .
- Sintaxis
- Ejemplos de
- Comandos relacionados
- Ayuda de comandos de Linux
Sintaxis
|_+_|Descripción general
Grep, que significa 'impresión de expresión regular global', es una poderosa herramienta para hacer coincidir un expresión regular contra el texto de un archivo, varios archivos o una secuencia de entrada. Busca el PATRÓN del texto que especificó en la línea de comando y genera los resultados por usted.
Uso de ejemplo
Digamos que queremos ubicar rápidamente la frase ' nuestros productos 'en archivos HTML en su máquina. Comencemos por buscar un solo archivo. Aquí, nuestro PATRÓN es 'nuestros productos' y nuestro EXPEDIENTE es product-Listing.html .
Se encontró una sola línea que contenía nuestro patrón, y sujeción envía toda la línea correspondiente al terminal. La línea es más larga que el ancho de nuestro terminal, por lo que el texto se ajusta a las siguientes líneas, pero esta salida corresponde exactamente a una línea en nuestro EXPEDIENTE .
NotaLa PATRÓN es interpretado por sujeción como una expresión regular. En el ejemplo anterior, todos los caracteres que usamos (letras y un espacio) se interpretan literalmente en expresiones regulares, por lo que solo se comparará la frase exacta. Sin embargo, otros caracteres tienen significados especiales, por ejemplo, algunos signos de puntuación. Para más información, ver: Referencia rápida de expresiones regulares .
Ver la salida de grep en color
Si usamos el --color opción, nuestras coincidencias exitosas se destacarán para nosotros:
Ver números de línea de coincidencias exitosas
Será aún más útil si sabemos dónde aparece la línea coincidente en nuestro archivo. Si especificamos el -norte opción, sujeción prefijará cada línea coincidente con el número de línea:
Nuestra línea coincidente tiene el prefijo ' 18: 'que nos dice que esto corresponde a la línea 18 de nuestro archivo.
Realización de búsquedas grep que no distinguen entre mayúsculas y minúsculas
¿Qué pasa si 'nuestros productos' aparece al principio de una oración o aparece en mayúsculas? Podemos especificar el -I opción para realizar un no distingue entre mayúsculas y minúsculas partido:
Utilizando la -I opción, sujeción también encuentra una coincidencia en la línea 23.
Buscar varios archivos usando un comodín
Si tenemos varios archivos para buscar, podemos buscarlos todos usando un comodín en nuestro EXPEDIENTE nombre. En lugar de especificar product-Listing.html , podemos usar un asterisco (' * ') y el .html extensión. Cuando se ejecuta el comando, el shell expande el asterisco al nombre de cualquier archivo que encuentre (en el directorio actual ) que termina en ' .html '.
Observe que cada línea comienza con el archivo específico donde ocurre esa coincidencia.
Subdirectorios de búsqueda recursiva
Podemos extender nuestra búsqueda a subdirectorios y cualquier archivo que contengan usando el -r opción, que dice sujeción para realizar su busqueda recursivamente . Cambiemos nuestro EXPEDIENTE nombre a un asterisco (' * '), para que coincida con cualquier nombre de archivo o directorio, y no solo con archivos HTML:
Esto nos da tres coincidencias adicionales. Observe que el nombre del directorio se incluye para cualquier archivo coincidente que no esté en el directorio actual.
Usar expresiones regulares para realizar búsquedas más potentes
El verdadero poder de grep es que puede coincidir con expresiones regulares. (Eso es lo que significa 're' en 'grep'). Las expresiones regulares usan caracteres especiales en el PATRÓN cadena para que coincida con una gama más amplia de cadenas. Veamos un ejemplo sencillo.
Digamos que desea encontrar cada aparición de una frase. similar a 'nuestros productos' en sus archivos HTML, pero la frase siempre debe comenzar con 'nuestro' y terminar con 'productos'. Podemos especificar esto PATRÓN en lugar de: 'nuestros productos' .
En expresiones regulares, el punto (' . ') se interpreta como un comodín de un solo carácter. Significa 'cualquier personaje que aparezca en este lugar coincidirá'. El asterisco (' * ') significa' el carácter anterior, que aparece cero o más veces, coincidirá '. Entonces la combinación ' .* ' coincidirá cualquier número de alguna personaje. Por ejemplo, ' nuestros increíbles productos ', ' los nuestros, los mejores productos de la historia ', e incluso' nuestros productos ' coincidirá. Y porque estamos especificando el -I opción, ' NUESTROS PRODUCTOS ' y ' Nuestros productos coincidirá también. Ejecutemos el comando con esta expresión regular y veamos qué coincidencias adicionales podemos obtener:
Aquí, también obtuvimos una coincidencia de la frase ' nuestros finos productos '.
Grep es una herramienta poderosa para ayudarlo a trabajar con archivos de texto, y se vuelve aún más poderosa cuando se siente cómodo usando expresiones regulares.
Descripción técnica
sujeción busca la entrada nombrada EXPEDIENTE s (o entrada estándar si no se nombran archivos, o si un solo guión (' - ') se da como el nombre del archivo) para las líneas que contienen una coincidencia con el PATRÓN . Por defecto, sujeción imprime las líneas coincidentes.
Además, tres programas variantes garza , fgrep y rgrep están disponibles:
- garza es lo mismo que correr grep -E . En este modo, sujeción evalúa tu PATRÓN cadena como una expresión regular extendida (ERE). Hoy en día, ERE no se 'extiende' mucho más allá de las expresiones regulares básicas, pero aún pueden ser muy útiles. Para obtener más información sobre las expresiones regulares extendidas, consulte: Expresiones regulares básicas vs extendidas , debajo.
- fgrep es lo mismo que correr grep -F . En este modo, sujeción evalúa tu PATRÓN cadena como una 'cadena fija': cada carácter de su cadena se trata literalmente. Por ejemplo, si su cadena contiene un asterisco (' * '), sujeción intentará hacer coincidirlo con un asterisco real en lugar de interpretarlo como un comodín . Si su cadena contiene varias líneas (si contiene líneas nuevas), cada línea se considerará una cadena fija y cualquiera de ellas puede activar una coincidencia.
- rgrep es lo mismo que correr grep -r . En este modo, sujeción realiza su busqueda recursivamente . Si encuentra un directorio, atraviesa ese directorio y continúa buscando. ( Enlaces simbólicos son ignorados; si desea buscar directorios que están vinculados simbólicamente, utilice el -R opción en su lugar).
En sistemas operativos más antiguos, garza , fgrep y rgrep eran programas distintos con sus propios ejecutables. En los sistemas modernos, estos nombres de comandos especiales son atajos para sujeción con las banderas apropiadas habilitadas. Son funcionalmente equivalentes.
Opciones generales
--ayuda | Imprima un mensaje de ayuda que resuma brevemente línea de comando opciones y salir. |
-V , --versión | Imprima el número de versión de sujeción y salir. |
Opciones de selección de partidos
-ES , --extended-regexp | Interpretar PATRÓN como una expresión regular extendida (ver: Expresiones regulares básicas vs extendidas ). |
-F , - cuerdas-fijas | Interpretar PATRÓN como una lista de cadenas fijas, separadas por nuevas líneas , que debe coincidir. |
-GRAMO , --basic-regexp | Interpretar PATRÓN como una expresión regular básica (ver: Expresiones regulares básicas vs extendidas ). Esta es la opción predeterminada cuando se ejecuta sujeción . |
-PAG , --perl-regexp | Interpretar PATRÓN tener un Perl expresión regular. Esta funcionalidad aún es experimental y puede producir mensajes de advertencia. |
Opciones de control a juego
-es PATRÓN , --regexp = PATRÓN | Usar PATRÓN como el patrón para que coincida. Esto puede especificar múltiples patrones de búsqueda o proteger un patrón que comienza con un guión ( - ). |
-F EXPEDIENTE , --file = EXPEDIENTE | Obtenga patrones de EXPEDIENTE , uno por línea. |
-I , --ignorar caso | Ignore las distinciones de mayúsculas y minúsculas tanto en PATRÓN y los archivos de entrada. |
-v , --invertir partido | Invierta el sentido de coincidencia para seleccionar líneas que no coincidan. |
-en , --word-regexp | Seleccione solo aquellas líneas que contengan coincidencias que formen palabras completas. La prueba es que la subcadena coincidente debe estar al principio de la línea o precedida por un carácter que no sea una palabra. O bien, debe estar al final de la línea o seguido de un carácter constituyente que no sea una palabra. Los caracteres que constituyen la palabra son letras, dígitos y guiones bajos. |
-x , --line-regexp | Seleccione solo coincidencias que coincidan exactamente con toda la línea. |
-y | Lo mismo que -I . |
Control de salida general
-c , --contar | En lugar de la salida normal, imprima un recuento de líneas coincidentes para cada archivo de entrada. Con el -v , --invertir partido opción (ver más abajo), cuente las líneas que no coinciden. |
--color [= CUÁNDO ], --color [= CUÁNDO ] | Rodee las cadenas coincidentes (no vacías), las líneas coincidentes, las líneas de contexto, los nombres de archivo, los números de línea, las compensaciones de bytes y los separadores (para campos y grupos de líneas de contexto) con secuencias de escape para mostrarlos en color en la terminal. Los colores están definidos por la variable de entorno GREP_COLORS. La variable de entorno más antigua GREP_COLOR todavía se admite, pero su configuración no tiene prioridad. CUÁNDO es Nunca , siempre , o auto . |
-L , --archivos-sin-coincidencias | En lugar de la salida normal, imprima el nombre de cada archivo de entrada desde el que normalmente no se imprimiría ninguna salida. El escaneo se detiene en el primer partido. |
-l , --archivos-con-coincidencias | En lugar de la salida normal, imprima el nombre de cada archivo de entrada desde el que normalmente se imprimiría la salida. El escaneo se detiene en el primer partido. |
-metro EN UNO , --max-count = EN UNO | Dejar de leer un archivo después EN UNO líneas coincidentes. Si la entrada es una entrada estándar de un archivo normal, y EN UNO Las líneas coincidentes salen, grep garantiza que la entrada estándar se coloque después de la última línea coincidente antes de salir, independientemente de la presencia de líneas de contexto finales. Esto permite que un proceso de llamada reanude una búsqueda. Cuándo sujeción se detiene después de EN UNO líneas coincidentes, genera cualquier línea de contexto final. Cuando el -c o --contar también se utiliza la opción, sujeción no genera un recuento mayor que EN UNO . Cuando el -v o --invertir partido también se utiliza la opción, grep se detiene después de generar EN UNO líneas que no coinciden. |
-o , --sólo coincidencia | Imprima solo las partes coincidentes (no vacías) de una línea coincidente, con cada parte en una línea de salida separada. |
-q , --tranquilo , --silencio | Tranquilo; no escriba nada en la salida estándar. Salga inmediatamente con el estado cero si se encuentra alguna coincidencia, incluso si se detectó un error. También vea el -s o --Ningún mensaje opción. |
-s , --Ningún mensaje | Suprima los mensajes de error sobre archivos inexistentes o ilegibles. |
Control de prefijo de línea de salida
-b , --byte-offset | Imprime el basado en 0 byte offset en el archivo de entrada antes de cada línea de salida. Si -o ( --sólo coincidencia ), imprima el desplazamiento de la parte correspondiente. |
-H , --con-nombre de archivo | Imprime el nombre de archivo para cada coincidencia. Este es el valor predeterminado cuando hay más de un archivo para buscar. |
-h , --no-nombre de archivo | Suprima el prefijo de los nombres de archivo en la salida. Este es el valor predeterminado cuando solo hay un archivo (o solo una entrada estándar) para buscar. |
--etiqueta = ETIQUETA | Muestra la entrada que realmente proviene de la entrada estándar como entrada que proviene del archivo ETIQUETA . Esto es especialmente útil cuando se implementan herramientas como zgrep , p.ej., gzip -cd foo.gz | grep --label = foo -H algo . Ver también el -H opción. |
-norte , --número de línea | Prefije cada línea de salida con el número de línea basado en 1 dentro de su archivo de entrada. |
-T , - tabulación inicial | Asegúrese de que el primer carácter del contenido de la línea real se encuentre en una tabulación, de modo que la alineación de las tabulaciones parezca normal. Esto es útil con opciones que anteponen su salida al contenido real: -H , -norte , y -b . Para mejorar la probabilidad de que las líneas de un solo archivo comiencen en la misma columna, esto también hace que el número de línea y el desplazamiento de bytes (si está presente) se impriman en un ancho de campo de tamaño mínimo. |
-u , - compensaciones de bytes de unix | Informar sobre desplazamientos de bytes al estilo Unix. Este cambio causa sujeción para informar las compensaciones de bytes como si el archivo fuera un archivo de texto de estilo Unix, es decir, con los caracteres CR eliminados. Esto produce resultados idénticos a ejecutar grep en una máquina Unix. Esta opción no tiene ningún efecto a menos que -b también se utiliza la opción; no tiene ningún efecto en plataformas que no sean MS-DOS y MS-Windows . |
-CON , --nulo | Salida de un byte cero (el ASCII Carácter NUL) en lugar del carácter que normalmente sigue al nombre de un archivo. Por ejemplo, grep -lZ genera un byte cero después de cada nombre de archivo en lugar del habitual nueva línea . Esta opción hace que la salida sea inequívoca, incluso en presencia de nombres de archivo que contienen caracteres inusuales como nuevas líneas. Esta opción se puede usar con comandos como buscar -print0 , perl -0 , clasificar -con , y xargs -0 para procesar nombres de archivos arbitrarios, incluso aquellos que contienen caracteres de nueva línea. |
Control de línea de contexto
-A EN UNO , --después del contexto = EN UNO | Impresión EN UNO líneas de contexto final después de las líneas coincidentes. Coloca una línea que contiene un separador de grupo ( -- ) entre grupos contiguos de coincidencias. Con el -o o --sólo coincidencia opción, esto no tiene ningún efecto y se da una advertencia. |
-B EN UNO , --before-context = EN UNO | Impresión EN UNO líneas de contexto inicial antes de las líneas coincidentes. Coloca una línea que contiene un separador de grupo ( -- ) entre grupos contiguos de coincidencias. Con el -o o --sólo coincidencia opción, esto no tiene ningún efecto y se da una advertencia. |
-C EN UNO , - EN UNO , --context = EN UNO | Impresión EN UNO líneas de contexto de salida. Coloca una línea que contiene un separador de grupo ( -- ) entre grupos contiguos de coincidencias. Con el -o o --sólo coincidencia opción, esto no tiene ningún efecto y se da una advertencia. |
Selección de archivos y directorios
-a , --texto | Procesar un binario archivo como si fuera texto; esto es equivalente a la --archivos-binarios = texto opción. |
--archivos-binarios = TIPO | Si los primeros bytes de un archivo indican que el archivo contiene datos binarios, suponga que el archivo es de tipo TIPO . Por defecto, TIPO es binario, y grep normalmente genera un mensaje de una línea que dice que un archivo binario coincide, o ningún mensaje si no hay coincidencia. Si TIPO es sin partido, sujeción asume que un archivo binario no coincide; esto es equivalente a la -I opción. Si TIPO es texto, grep procesa un archivo binario como si fuera texto; esto es equivalente a la -a opción. Advertencia: grep - archivos-binarios = texto podría generar basura binaria, que puede tener efectos secundarios desagradables si la salida es una terminal y si el controlador de la terminal interpreta parte de ella como comandos. |
-D ACCIÓN , --devices = ACCIÓN | Si un archivo de entrada es un dispositivo, FIFO o socket, utilice ACCIÓN para procesarlo. Por defecto, ACCIÓN es leer , lo que significa que los dispositivos se leen como si fueran archivos normales. Si ACCIÓN es saltar , los dispositivos se omiten silenciosamente. |
-D ACCIÓN , --directories = ACCIÓN | Si un archivo de entrada es un directorio , usar ACCIÓN para procesarlo. Por defecto, ACCIÓN es leer , es decir, leer directorios como si fueran archivos normales. Si ACCIÓN es saltar , omitir directorios silenciosamente. Si ACCIÓN es recurrente , leer todos los archivos de cada directorio, recursivamente , siguiente enlaces simbólicos solo si están en la línea de comando. Esto es equivalente al -r opción. |
--exclude = GLOBO | Omitir archivos cuyo nombre base coincida GLOBO (utilizando comodín pareo). Un glob de nombre de archivo puede usar * , ? , y [...] como comodines, y para citar un carácter comodín o barra invertida literalmente. |
--excluir-de = EXPEDIENTE | Omitir archivos cuyo nombre base coincida con cualquiera de los globs de nombre de archivo leídos EXPEDIENTE (usando la coincidencia de comodines como se describe en --excluir ). |
--exclude-dir = PARA TI | Excluya los directorios que coincidan con el patrón DIR de las búsquedas recursivas. |
-I | Procese un archivo binario como si no contuviera datos coincidentes; esto es equivalente a la --archivos-binarios = sin coincidencia opción. |
--include = GLOBO | Buscar solo archivos cuyo nombre base coincida GLOBO (usando la coincidencia de comodines como se describe en --excluir ). |
-r , --recursivo | Lea todos los archivos de cada directorio, de forma recursiva, siguiendo enlaces simbólicos solo si están en la línea de comandos. Esto es equivalente al -d recurse opción. |
-R , --dereference-recursive | Leer todos los archivos de cada directorio, de forma recursiva. Siga todos los enlaces simbólicos, a diferencia de -r . |
Otras opciones
- con búfer de línea | Utilice búfer de línea en la salida. Esto puede provocar una penalización de rendimiento. |
--mmap | Si es posible, utilice el mmap llamada al sistema para leer la entrada, en lugar de la predeterminada leer llamada al sistema. En algunas situaciones --mmap produce un mejor rendimiento. Sin embargo, --mmap puede causar un comportamiento indefinido (incluidos volcados de núcleo) si un archivo de entrada se reduce mientras sujeción está funcionando o si se produce un error de E / S. |
-U , --binario | Trate los archivos como binarios. De forma predeterminada, en MS-DOS y MS-Windows, sujeción adivina el tipo de archivo mirando el contenido de los primeros 32 KB leer del archivo. Si sujeción decide que el archivo es un archivo de texto, quita los caracteres CR del contenido del archivo original (para hacer expresiones regulares con ^ y $ funcionan correctamente). Especificando -U anula estas conjeturas, lo que hace que todos los archivos se lean y pasen al mecanismo de coincidencia literalmente; si el archivo es un archivo de texto con pares CR / LF al final de cada línea, esto provoca que algunas expresiones regulares fallen. Esta opción no tiene ningún efecto en plataformas que no sean MS-DOS y MS-Windows. |
-con , --null-data | Trate la entrada como un conjunto de líneas, cada una terminada por un byte cero (el carácter ASCII NUL) en lugar de una nueva línea. Como el -CON o --nulo opción, esta opción se puede utilizar con comandos como clasificar -con para procesar nombres de archivos arbitrarios. |
Expresiones regulares
Una expresión regular es un patrón que describe un conjunto de cadenas. Las expresiones regulares se construyen de forma análoga a las expresiones aritméticas, utilizando varios operadores para combinar expresiones más pequeñas.
sujeción comprende tres versiones diferentes de la sintaxis de expresiones regulares: 'básica' (BRE), 'extendida' (ERE) y 'perl' (PRCE). En GNU sujeción , no hay diferencia en la funcionalidad disponible entre la sintaxis básica y extendida. En otras implementaciones, las expresiones regulares básicas son menos poderosas. La siguiente descripción se aplica a las expresiones regulares extendidas; las diferencias de las expresiones regulares básicas se resumen a continuación. Perl las expresiones regulares brindan funcionalidad adicional.
Los bloques de construcción fundamentales son las expresiones regulares que coinciden con un solo carácter. La mayoría de los caracteres, incluidas todas las letras y dígitos, son expresiones regulares que coinciden entre sí. Cualquier metacarácter con un significado especial se puede citar precediéndolo con una barra invertida.
El período ( . ) coincide con cualquier carácter.
Clases de caracteres y expresiones de corchetes
A expresión de corchetes es una lista de caracteres encerrados por [ y ] . Coincide con cualquier carácter individual en 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. Por ejemplo, la expresión regular [0123456789] coincide con cualquier dígito.
Dentro de una expresión de corchetes, un expresión de rango consta de dos caracteres separados por un guión. Coincide con cualquier carácter individual que 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 C predeterminada, [anuncio] es equivalente a [a B C D] . Muchas configuraciones regionales ordenan los caracteres en el orden del diccionario, y en estas configuraciones regionales [anuncio] a menudo no es equivalente a [a B C D] ; podría ser equivalente a [aBbCcDd] , por ejemplo. Para obtener la interpretación tradicional de las expresiones de corchetes, puede usar la configuración regional C configurando LC_ALL Variable ambiental al valor C .
Por último, ciertas clases de caracteres con nombre están predefinidas dentro de las expresiones entre corchetes, como sigue. Sus nombres se explican por sí mismos y son [: Scooping] , [:alfa:] , [: cntrl:] , [:dígito:] , [:grafico:] , [:más bajo:] , [:impresión:] , [:punto:] , [:espacio:] , [:superior:] , y [: Xdigit] . Por ejemplo, [[Charon]] significa la clase de caracteres de 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 [0-9A-To-z] . (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 incluir un literal ] colóquelo primero en la lista. Del mismo modo, para incluir un literal ^ colóquelo en cualquier lugar menos primero. Finalmente, para incluir un literal - , colóquelo al final.
Fondeo
El caret ^ y el signo de dólar $ son metacaracteres que coinciden respectivamente con la cadena vacía al principio y al final de una línea.
El carácter de barra invertida y expresiones especiales
Los simbolos < y > respectivamente, coinciden con la cadena vacía al principio y al final de una palabra. El símbolo coincide con la cadena vacía en el borde de una palabra, y B coincide con la cadena vacía siempre que no esté al borde de una palabra. El símbolo en es sinónimo de [_ [, Scooping]] y EN es sinónimo de [^ [: Scooping]] .
Repetición
Una expresión regular puede ir seguida de uno de varios operadores de repetición:
? | El elemento anterior es opcional y coincide como máximo una vez. |
* | El elemento anterior se emparejará cero o más veces. |
+ | El elemento anterior se emparejará una o más veces. |
{ norte } | El elemento anterior coincide exactamente norte veces. |
{ norte ,} | El elemento anterior coincide norte o más veces. |
{ norte , metro } | El elemento anterior coincide al menos norte veces, pero no más de metro veces. |
Concatenación
Dos expresiones regulares pueden ser concatenado ; la expresión regular resultante coincide con cualquier cadena formada mediante la concatenación de dos subcadenas que coinciden respectivamente con las expresiones concatenadas.
Alternancia
El operador infijo puede unir dos expresiones regulares | ; la expresión regular resultante coincide con cualquier cadena que coincida con cualquier expresión alternativa.
Precedencia
La repetición tiene prioridad sobre la concatenación, que a su vez tiene prioridad sobre la alternancia. Se puede incluir una expresión completa entre paréntesis para anular estas reglas de precedencia y formar una subexpresión.
Volver referencias y subexpresiones
La referencia posterior norte , dónde norte es un solo dígito, coincide con la subcadena previamente emparejada por el norte la subexpresión entre paréntesis de la expresión regular.
Expresiones regulares básicas vs extendidas
En expresiones regulares básicas, los metacaracteres ? , + , { , | , ( , y ) pierden su significado especial; en su lugar, use las versiones con barra invertida ? , + , { , | , ( , y ) .
Versiones tradicionales de garza no apoyó el { metacarácter, y algunos garza soporte de implementaciones { en su lugar, los scripts portátiles deben evitar { en grep -E patrones y debería usar [{] para que coincida con un literal { .
ÑU grep -E intenta apoyar el uso tradicional asumiendo que { no es especial si sería el comienzo de una especificación de intervalo no válida. Por ejemplo, el comando grep -E '{1' busca la cadena de dos caracteres {1 en lugar de informar un error de sintaxis en la expresión regular. POSIX permite este comportamiento como una extensión, pero los scripts portátiles deberían evitarlo.
Variables de entorno
El comportamiento de sujeción se ve afectado por las siguientes variables de entorno.
La configuración regional de la categoría LC_foo se especifica examinando las tres variables de entorno LC_ALL , LC_foo , y LANG , en ese orden. La primera de estas variables que se establece especifica la configuración regional. Por ejemplo, si LC_ALL no está configurado, pero LC_MESSAGES se establece en pt_BR , la configuración regional de portugués brasileño se utiliza para LC_MESSAGES categoría. La C La configuración regional se utiliza si no se establece ninguna de estas variables de entorno, si el catálogo de configuración regional no está instalado o si sujeción no se compiló con el soporte de idioma nacional (NLS).
Otras variables de interés:
GREP_OPTIONS | Esta variable especifica las opciones predeterminadas que se colocarán delante de las opciones explícitas. Por ejemplo, si GREP_OPTIONS es ' --archivos-binarios = sin coincidencia --directorios = omitir ', sujeción se comporta como si las dos opciones --archivos-binarios = sin coincidencia y --directories = omitir se había especificado antes de las opciones explícitas. Las especificaciones de las opciones están separadas por espacio en blanco . Una barra invertida escapa al siguiente carácter, por lo que puede especificar una opción que contenga espacios en blanco o una barra invertida. | ||||||||||||||||||||||
GREP_COLOR | Esta variable especifica el color utilizado para resaltar el texto coincidente (no vacío). Está en desuso a favor de GREP_COLORS , pero aún compatible. La monte , Sra , y mc capacidades de GREP_COLORS tienen prioridad sobre él. Solo puede especificar el color utilizado para resaltar el texto coincidente no vacío en cualquier línea coincidente (una línea seleccionada cuando el -v se omite la opción de línea de comandos, o una línea de contexto cuando -v está especificado). El valor predeterminado es 01;31 , lo que significa un texto de primer plano rojo en negrita en el fondo predeterminado del terminal. | ||||||||||||||||||||||
GREP_COLORS | Especifica los colores y otros atributos utilizados para resaltar varias partes de la salida. Su valor es una lista de capacidades separadas por dos puntos que por defecto es ms = 01; 31: mc = 01; 31: sl =: cx =: fn = 35: ln = 32: bn = 32: se = 36 con el rv y Nació capacidades booleanas omitidas (es decir, falso ). Las capacidades admitidas son las siguientes:
Tenga en cuenta que las capacidades booleanas no tienen =... parte. Se omiten (es decir, falso ) por defecto y convertirse cierto cuando se especifica. Consulte la sección Seleccionar representación gráfica (SGR) 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 se pueden concatenar con punto y coma. sujeción se encarga de ensamblar el resultado en una secuencia SGR completa ( 33[ ... metro ). Los valores comunes para concatenar incluyen 1 para negrita, 4 para subrayar, 5 para parpadear, 7 por inversa, 39 para el color de primer plano predeterminado, 30 a 37 para colores de primer plano, 90 a 97 para colores de primer plano en modo de 16 colores, 38;5;0 a 38;5;255 para colores de primer plano en los modos de 88 y 256 colores, 49 para el color de fondo predeterminado, 40 a 47 para colores de fondo, 100 a 107 para colores de fondo en modo de 16 colores, y 48;5;0 a 48;5;255 para colores de fondo en los modos de 88 y 256 colores. | ||||||||||||||||||||||
LC_ALL , LC_COLLATE , LANG | Estas variables especifican la configuración regional del LC_COLLATE categoría, que determina la secuencia de clasificación utilizada para interpretar expresiones de rango como [Arizona] . | ||||||||||||||||||||||
LC_ALL , LC_CTYPE , LANG | Estas variables especifican la configuración regional del LC_CTYPE categoría, que determina el tipo de caracteres, por ejemplo, qué caracteres son espacios en blanco. | ||||||||||||||||||||||
LC_ALL , LC_MESSAGES , LANG | Estas variables especifican la configuración regional del LC_MESSAGES categoría, que determina el idioma que utiliza grep para los mensajes. El valor por defecto C locale usa mensajes en inglés americano. | ||||||||||||||||||||||
POSIXLY_CORRECT | Si está configurado, sujeción se comporta como lo requiere POSIX; de lo contrario, sujeción se comporta más como otros programas GNU. POSIX requiere que las opciones que siguen a los nombres de archivo se traten como nombres de archivo; de forma predeterminada, estas opciones se permutan al principio de la lista de operandos y se tratan como opciones. Además, POSIX requiere que las opciones no reconocidas se diagnostiquen como 'ilegales', pero como no están realmente en contra de la ley, la opción predeterminada es diagnosticarlas como 'no válidas'. POSIXLY_CORRECT también deshabilita _N_GNU_nonoption_argv_flags_ , descrito abajo. | ||||||||||||||||||||||
_N_GNU_nonoption_argv_flags_ | (Aquí norte es sujeción ID de proceso numérico). Si el I El carácter del valor de esta variable de entorno es 1 , no consideres el I a operando de sujeción para ser una opción, incluso si parece serlo. Un shell puede poner esta variable en el entorno para cada comando que ejecuta, especificando qué operandos son el resultado de la expansión del comodín del nombre de archivo y, por lo tanto, no deben tratarse como opciones. Este comportamiento está disponible solo con la biblioteca GNU C, y solo cuando POSIXLY_CORRECT no está configurado. |
Estado de salida
El estado de salida es 0 si se encuentran líneas seleccionadas, y 1 si no se encuentra. Si ocurrió un error, el estado de salida es 2 .
Ejemplos de
ConsejoSi aún no ha visto nuestro uso de ejemplo sección, sugerimos revisar esa sección primero.
|_+_|Buscar / etc / passwd para el usuario Cerveza de barril .
|_+_|Busque en el archivo Apache error_log las entradas de error que ocurrieron el 31 de mayo a las 3 a.m. Al agregar comillas alrededor de la cadena, esto le permite colocar espacios en la búsqueda grep.
|_+_|Buscar de forma recursiva en el directorio /www/ , y todos los subdirectorios, para cualquier línea de cualquier archivo que contenga la cadena ' computadora '.
|_+_|Buscar el archivo myfile.txt para las líneas que contienen la palabra ' esperanza '. Solo las líneas que contienen la palabra distintiva 'esperanza' coinciden. Líneas donde está la 'esperanza' parte de una palabra (por ejemplo, 'esperanzas') son no ser emparejado.
|_+_|Igual que el comando anterior, pero muestra un recuento de cuántas líneas coincidieron, en lugar de las líneas coincidentes en sí.
|_+_|Inverso del comando anterior: muestra un recuento de las líneas en myfile.txt que hacer no contienen la palabra 'esperanza'.
|_+_|Muestre los nombres de archivo (pero no las líneas coincidentes en sí) de cualquier archivo en /www/ (pero no sus subdirectorios) cuyo contenido incluye la cadena ' esperanza '.
Comandos relacionados
ed - Un sencillo editor de texto.
garza - Filtrar texto que coincide con una expresión regular extendida.
y - Una utilidad para filtrar y transformar texto.
sh - El intérprete de comandos del shell Bourne.