Este es el comando pcre2grep que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
pcre2grep: un grep con expresiones regulares compatibles con Perl.
SINOPSIS
pcre2grep [opciones] [largo opciones] [patrón] [ruta1 path2 ...]
DESCRIPCIÓN
pcre2grep busca archivos para patrones de caracteres, de la misma manera que otros comandos grep
hacer, pero utiliza la biblioteca de expresiones regulares PCRE2 para admitir patrones que son
compatible con las expresiones regulares de Perl 5. Consulte sintaxis pcre2(3) para una
resumen de referencia de la sintaxis del patrón, o patrón pcre2(3) para obtener una descripción completa del
sintaxis y semántica de las expresiones regulares que admite PCRE2.
Los patrones, ya sea que se proporcionen en la línea de comando o en un archivo separado, se proporcionan sin
delimitadores. Por ejemplo:
pcre2grep jueves / etc / motd
Si intenta utilizar delimitadores (por ejemplo, rodeando un patrón con barras, como
es común en los scripts de Perl), se interpretan como parte del patrón. Las cotizaciones pueden de
Por supuesto, se puede utilizar para delimitar patrones en la línea de comando porque son interpretados por el
shell, y de hecho se requieren comillas si un patrón contiene espacios en blanco o shell
metacaracteres.
El primer argumento que sigue a cualquier configuración de opción se trata como el patrón único que debe
emparejado cuando ninguno -e ni -f está presente. Por el contrario, cuando una o ambas de estas opciones
se utilizan para especificar patrones, todos los argumentos se tratan como nombres de ruta. Al menos uno de -e,
-f, o se debe proporcionar un patrón de argumento.
Si no se especifican archivos, pcre2grep lee la entrada estándar. La entrada estándar también puede
ser referenciado por un nombre que consta de un solo guión. Por ejemplo:
pcre2grep algún patrón file1 - file3
Los archivos de entrada se buscan línea por línea. Por defecto, cada línea que coincide con un patrón es
copiado a la salida estándar, y si hay más de un archivo, el nombre del archivo se genera
al comienzo de cada línea, seguido de dos puntos. Sin embargo, hay opciones que pueden
cambiar como pcre2grep se comporta. En particular, el -M opción permite buscar
cadenas que atraviesan los límites de las líneas. Lo que define un límite de línea está controlado por el -N
(--nueva línea) opción.
La cantidad de memoria utilizada para almacenar en búfer los archivos que se están escaneando está controlada por un
Parámetro que puede ser configurado por el --tamaño del búfer opción. El valor predeterminado para esto
el parámetro se especifica cuando pcre2grep está construido, con el valor predeterminado predeterminado 20K. A
bloque de memoria tres veces este tamaño se utiliza (para permitir el almacenamiento en búfer "antes" y "después"
líneas). Se produce un error si una línea desborda el búfer.
Los patrones no pueden tener más de 8K o BUFSIZ bytes, lo que sea mayor. BUFSIZ es
definido en . Cuando hay más de un patrón (especificado por el uso de -e
y/o -f), cada patrón se aplica a cada línea en el orden en que se definen,
excepto que todos los -e los patrones se prueban antes de -f .
De forma predeterminada, tan pronto como un patrón coincide con una línea, no se consideran más patrones.
Sin embargo, si --color (o --color) se utiliza para colorear las subcadenas coincidentes, o si --solamente-
pareo, - compensaciones de archivoo - compensaciones de línea se usa para generar solo la parte de la línea
que coincide (ya sea que se muestra literalmente o como un desplazamiento), el escaneo se reanuda inmediatamente
después de la coincidencia, de modo que se puedan encontrar más coincidencias en la misma línea. Si hay
múltiples patrones, todos se prueban en el resto de la línea, pero patrones que
siga el que coincidió no se probaron en la parte anterior de la línea.
Este comportamiento significa que el orden en el que se especifican varios patrones puede afectar
la salida cuando se utiliza una de las opciones anteriores. Este ya no es el mismo comportamiento que
GNU grep, que ahora se las arregla para mostrar coincidencias anteriores para patrones posteriores (siempre que
no hay superposición).
Se aceptan patrones que pueden coincidir con una cadena vacía, pero nunca se aceptan las coincidencias de cadenas vacías.
Reconocido. Un ejemplo es el patrón "(super)? (Man)?", En el que todos los componentes son
Opcional. Este patrón encuentra todas las apariciones de "super" y "man"; la salida es diferente
de coincidir con "super | man" cuando solo se muestran las subcadenas coincidentes.
Si LC_TODOS or LC_CTYPE se establece la variable de entorno, pcre2grep usa el valor para establecer un
locale al llamar a la biblioteca PCRE2. los --lugar La opción se puede utilizar para anular esto.
SOPORTE PARA COMPRIMIDO ARCHIVOS
Es posible compilar pcre2grep para que use libz or libbz2 para leer archivos cuyo
los nombres terminan en .gz or . Bz2, respectivamente. Puede averiguar si su binario tiene soporte
para uno o ambos de estos tipos de archivos ejecutándolo con el --ayuda opción. Si el
el soporte adecuado no está presente, los archivos se tratan como texto sin formato. La entrada estándar es
siempre tan tratado.
BINARIO ARCHIVOS
De forma predeterminada, un archivo que contiene un byte binario cero dentro de los primeros 1024 bytes es
identificado como un archivo binario, y se procesa especialmente. (GNU grep también identifica binarios
archivos de esta manera). --archivos-binarios opción para un medio de cambiar la forma
se manejan archivos binarios.
OPCIONES
El orden en el que aparecen algunas de las opciones puede afectar la salida. Por ejemplo, tanto el
-h y -l Las opciones afectan la impresión de los nombres de los archivos. Lo que ocurra más tarde en el comando
será la línea que surta efecto. Del mismo modo, excepto donde se indica a continuación, si una opción
se da dos veces, se utiliza la configuración posterior. Los valores numéricos de las opciones pueden ir seguidos de
K o M, para significar la multiplicación por 1024 o 1024 * 1024 respectivamente.
-- Esto termina la lista de opciones. Es útil si el siguiente elemento de la
La línea de comando comienza con un guion pero no es una opción. Esto permite
procesamiento de patrones y nombres de archivos que comienzan con guiones.
-A número, --after-context =número
Salida número líneas de contexto después de cada línea coincidente. Si los nombres de archivo y / o
se emiten números de línea, se utiliza un separador de guión en lugar de dos puntos para
las líneas de contexto. Se emite una línea que contiene "-" entre cada grupo de líneas,
a menos que sean contiguos en el archivo de entrada. El valor de número is
se espera que sea relativamente pequeño. Sin embargo, pcre2grep garantías de tener hasta 8K
del siguiente texto disponible para la salida de contexto.
-a, --texto
Trate los archivos binarios como texto. Esto es equivalente a --archivos-binarios=texto.
-B número, --before-context =número
Salida número líneas de contexto antes de cada línea coincidente. Si los nombres de archivo y / o
se emiten números de línea, se utiliza un separador de guión en lugar de dos puntos para
las líneas de contexto. Se emite una línea que contiene "-" entre cada grupo de líneas,
a menos que sean contiguos en el archivo de entrada. El valor de número is
se espera que sea relativamente pequeño. Sin embargo, pcre2grep garantías de tener hasta 8K
del texto anterior disponible para la salida de contexto.
--archivos-binarios =palabra clave
Especifique cómo se procesarán los archivos binarios. Si la palabra es "binario" (el
predeterminado), la coincidencia de patrones se realiza en archivos binarios, pero la única salida es
"Archivo binario coincide con "cuando una coincidencia se realiza correctamente. Si la palabra es" texto ",
es equivalente a la -a or --texto opción, los archivos binarios se procesan en la misma
manera como cualquier otro archivo. En este caso, cuando una coincidencia tiene éxito, la salida puede ser
basura binaria, que puede tener efectos desagradables si se envía a una terminal. Si la palabra
es "sin coincidencia", que es equivalente a la -I opción, los archivos binarios no son
procesado en absoluto; se supone que no son de interés y se omiten sin
causando cualquier salida o afectando el código de retorno.
--buffer-size =número
Establezca el parámetro que controla cuánta memoria se utiliza para almacenar en búfer los archivos que
están siendo escaneados.
-C número, --context =número
Salida número líneas de contexto antes y después de cada línea coincidente. Esta
es equivalente a configurar ambos -A y -B al mismo valor.
-c, --contar
No genere líneas de los archivos que se están analizando; en lugar de emitir el
número de coincidencias (o no coincidencias si -v se utiliza) que de otro modo habría
provocó que se mostraran las líneas. Por defecto, este recuento es el mismo que el número de
líneas suprimidas, pero si el -M se utiliza la opción (multilínea) (sin -v), allí
puede haber más líneas suprimidas que el número de coincidencias.
Si no se seleccionan líneas, se emite el número cero. Si varios archivos son
escaneados, se emite un recuento para cada uno de ellos. Sin embargo, si el --archivos-con-
cerillas También se utiliza la opción, solo aquellos archivos cuyos recuentos son mayores que cero
están listados. Cuando -c Se utiliza, el -A, -By -C las opciones se ignoran.
--color, --color
Si esta opción se da sin ningún dato, es equivalente a "--colour = auto".
Si se requieren datos, se deben proporcionar en el mismo elemento de shell, separados por un
signo de igual.
--color =propuesta de, --color =propuesta de
Esta opción especifica bajo qué circunstancias las partes de una línea que coincidieron
se debe colorear un patrón en la salida. Por defecto, la salida no es
de colores. El valor (que es opcional, consulte más arriba) puede ser "nunca", "siempre" o
"auto". En el último caso, la coloración ocurre solo si la salida estándar es
conectado a un terminal. Se utilizan más recursos cuando la coloración está habilitada,
because pcre2grep tiene que buscar todas las coincidencias posibles en una línea, no solo
uno, para colorearlos todos.
El color que se utiliza se puede especificar configurando la variable de entorno
PCRE2GREP_COLOUR o PCRE2GREP_COLOR. El valor de esta variable debe ser un
cadena de dos números, separados por un punto y coma. Se copian directamente en
la cadena de control para configurar el color en un terminal, por lo que es su
responsabilidad de asegurar que tengan sentido. Si ninguno del medio ambiente
las variables están configuradas, el valor predeterminado es "1; 31", que da rojo.
-D DE ACTUAR!, --devices = DE ACTUAR!
Si una ruta de entrada no es un archivo normal o un directorio, "acción" especifica cómo
se va a procesar. Los valores válidos son "leer" (predeterminado) o "omitir" (silenciosamente
saltarse el camino).
-d DE ACTUAR!, --directories = DE ACTUAR!
Si una ruta de entrada es un directorio, "acción" especifica cómo se procesará.
Los valores válidos son "leer" (el valor predeterminado en entornos que no son Windows, para
compatibilidad con GNU grep), "recurse" (equivalente a la -r opción), o "omitir"
(omitir silenciosamente la ruta, el predeterminado en entornos de Windows). En el "leer"
En este caso, los directorios se leen como si fueran archivos ordinarios. En algunas operaciones
sistemas el efecto de leer un directorio como este es un final de archivo inmediato;
en otros, puede provocar un error.
-e patrón, --regex =patrón, --regexp =patrón
Especifique un patrón que se combinará. Esta opción se puede utilizar varias veces para
para especificar varios patrones. También se puede utilizar como una forma de especificar un solo
patrón que comienza con un guion. Cuando -e se utiliza, no se toma ningún patrón de argumento
desde la línea de comando; todos los argumentos se tratan como nombres de archivo. No hay
límite al número de patrones. Se aplican a cada línea en el orden en
que se definen hasta que uno coincide.
If -f se usa con -e, los patrones de la línea de comando se hacen coincidir primero, seguidos de
los patrones del archivo (s), independientemente del orden en que estas opciones
se especifican. Tenga en cuenta que el uso múltiple de -e no es lo mismo que un solo patrón
con alternativas. Por ejemplo, X | Y busca el primer carácter en una línea que es
X o Y, mientras que si los dos patrones se dan por separado, con X primero,
pcre2grep encuentra X si está presente, incluso si sigue a Y en la línea. Encuentra Y
solo si no hay una X en la línea. Esto solo importa si está utilizando -o or
--color para mostrar la (s) parte (s) de la línea que coincidió.
--excluir=patrón
Los archivos (pero no los directorios) cuyos nombres coinciden con el patrón se omiten sin
siendo procesado. Esto se aplica a todos los archivos, ya sea que aparezcan en la línea de comando,
obtenido de - lista de archivoso escaneando un directorio. El patrón es un PCRE2
expresión regular y se compara con el componente final del nombre del archivo,
no todo el camino. los -F, -wy -x las opciones no se aplican a este patrón.
La opción se puede dar cualquier número de veces para especificar múltiples
patrones. Si un nombre de archivo coincide con un --incluir y una --excluir patrón, es
está excluido. No hay un formulario abreviado para esta opción.
--excluir-de =nombre de archivo
Trate cada línea no vacía del archivo como los datos de un --excluir opción. Qué
constituye una nueva línea cuando la lectura del archivo es la predeterminada del sistema operativo.
Los --nueva línea La opción no tiene ningún efecto sobre esta opción. Esta opción puede tener más
de una vez para especificar una cantidad de archivos para leer.
--excluir-dir=patrón
Los directorios cuyos nombres coinciden con el patrón se omiten sin ser procesados,
cualquiera que sea el escenario de la --recursivo opción. Esto se aplica a todos los directorios,
ya sea que aparezca en la línea de comando, obtenido de - lista de archivos, o escaneando un
directorio de padres. El patrón es una expresión regular PCRE2 y coincide
contra el componente final del nombre del directorio, no la ruta completa. los -F,
-wy -x las opciones no se aplican a este patrón. La opción se puede dar cualquier
número de veces para especificar más de un patrón. Si un directorio
coincide con ambos --incluir-dir y --excluir-dir, está excluido. No hay corto
formulario para esta opción.
-F, - cuerdas-fijas
Interprete cada patrón de coincidencia de datos como una lista de cadenas fijas, separadas por
nuevas líneas, en lugar de una expresión regular. ¿Qué constituye una nueva línea para
este propósito está controlado por el --nueva línea opción. La -w (emparejar como una palabra) y
-x (coincidir con toda la línea) las opciones se pueden utilizar con -F. Se aplican a cada uno de los
cuerdas fijas. Se selecciona una línea si alguna de las cadenas fijas se encuentra en ella
(sujeto a -w or -x, si está presente). Esta opción se aplica solo a los patrones que
se comparan con el contenido de los archivos; no se aplica a patrones
especificado por cualquiera de los --incluir or --excluir .
-f nombre de archivo, --file =nombre de archivo
Leer patrones del archivo, uno por línea, y compararlos con cada línea de
aporte. Lo que constituye una nueva línea al leer el archivo es la operación
predeterminado del sistema. los --nueva línea La opción no tiene ningún efecto sobre esta opción. Trailing
los espacios en blanco se eliminan de cada línea y las líneas en blanco se ignoran. Un vacío
El archivo no contiene patrones y, por lo tanto, no coincide con nada. Ver también los comentarios
sobre patrones múltiples versus un patrón único con alternativas en el
descripción de -e anterior.
Si esta opción se da más de una vez, se leen todos los archivos especificados. Un dato
se emite una línea si alguno de los patrones coincide con ella. Un nombre de archivo se puede dar como "-"
para referirse a la entrada estándar. Cuando -f se utiliza, patrones especificados en el
línea de comando usando -e también puede estar presente; se prueban antes de que el archivo
patrones. Sin embargo, no se toma ningún otro patrón de la línea de comandos; todos
Los argumentos se tratan como los nombres de las rutas que se buscarán.
- lista de archivos=nombre de archivo
Lea una lista de archivos y / o directorios que se analizarán desde el
archivo, uno por línea. Los espacios en blanco finales se eliminan de cada línea y se dejan en blanco.
las líneas se ignoran. Estas rutas se procesan antes que las que se enumeran en el
línea de comando. El nombre del archivo se puede dar como "-" para referirse a la entrada estándar.
If --expediente y - lista de archivos ambos se especifican como "-", los patrones se leen primero.
Esto es útil solo cuando la entrada estándar es un terminal, desde el cual más
Las líneas (la lista de archivos) se pueden leer después de una indicación de fin de archivo. Si esto
se da la opción más de una vez, se leen todos los archivos especificados.
- compensaciones de archivo
En lugar de mostrar líneas o partes de líneas que coincidan, muestre cada coincidencia como un
desplazamiento desde el inicio del archivo y una longitud, separados por una coma. En esto
modo, no se muestra ningún contexto. Eso es el -A, -By -C las opciones se ignoran. Si
hay más de una coincidencia en una línea, cada una de ellas se muestra por separado. Esta
La opción es mutuamente excluyente con - compensaciones de línea y --sólo coincidencia.
-H, --con-nombre de archivo
Forzar la inclusión del nombre del archivo al comienzo de las líneas de salida al buscar
un solo archivo. De forma predeterminada, el nombre del archivo no se muestra en este caso. Para
líneas coincidentes, el nombre del archivo va seguido de dos puntos; para líneas de contexto, un
Se utiliza un separador de guiones. Si también se emite un número de línea, sigue el
nombre del archivo. Cuando el -M La opción hace que un patrón coincida con más de una línea, solo
el primero está precedido por el nombre del archivo.
-h, --no-nombre de archivo
Suprima los nombres de los archivos de salida cuando busque varios archivos. Por defecto, archivo
los nombres se muestran cuando se buscan varios archivos. Para líneas coincidentes, el archivo
el nombre va seguido de dos puntos; para las líneas de contexto, se utiliza un separador de guiones. Si
también se emite un número de línea, que sigue al nombre del archivo.
--ayuda Genere un mensaje de ayuda, dando detalles breves de las opciones del comando y el tipo de archivo
soporte y luego salir. Cualquier otra cosa en la línea de comando se ignora.
-I Ignore los archivos binarios. Esto es equivalente a --archivos-binarios=sin partido.
-i, --ignorar caso
Ignore las distinciones entre mayúsculas y minúsculas durante las comparaciones.
--incluir=patrón
Si alguna --incluir se especifican patrones, los únicos archivos que se procesan son
aquellos que coinciden con uno de los patrones (y no coinciden con un --excluir patrón).
Esta opción no afecta a los directorios, pero se aplica a todos los archivos, ya sea
listado en la línea de comando, obtenido de - lista de archivos, o escaneando un
directorio. El patrón es una expresión regular PCRE2 y se compara con la
componente final del nombre del archivo, no la ruta completa. los -F, -wy -x
las opciones no se aplican a este patrón. La opción se puede dar cualquier número de
veces. Si un nombre de archivo coincide con un --incluir y una --excluir patrón, es
excluido. No hay un formulario abreviado para esta opción.
--include-de =nombre de archivo
Trate cada línea no vacía del archivo como los datos de un --incluir opción. Qué
constituye una nueva línea para este propósito es el predeterminado del sistema operativo. los
--nueva línea La opción no tiene ningún efecto sobre esta opción. Esta opción puede tener cualquier
numero de veces; se leen todos los archivos.
--incluir-dir=patrón
Si alguna --incluir-dir se especifican patrones, los únicos directorios que son
procesados son aquellos que coinciden con uno de los patrones (y no coinciden con un
--excluir-dir patrón). Esto se aplica a todos los directorios, ya sea que figuren en el
línea de comando, obtenida de - lista de archivoso escaneando un directorio principal. los
patrón es una expresión regular PCRE2, y se compara con el patrón final
componente del nombre del directorio, no la ruta completa. los -F, -wy -x opciones
no aplique a este patrón. La opción puede darse tantas veces como desee. Si un
directorio coincide con ambos --incluir-dir y --excluir-dir, está excluido. Hay
no hay forma abreviada para esta opción.
-L, --archivos-sin-coincidencias
En lugar de generar líneas de los archivos, solo muestre los nombres de los archivos
que no contienen ninguna línea que se hubiera generado. Cada nombre de archivo es
salida una vez, en una línea separada.
-l, --archivos-con-coincidencias
En lugar de generar líneas de los archivos, solo muestre los nombres de los archivos
que contiene líneas que se habrían producido. Cada nombre de archivo se emite una vez, en
una línea separada. La búsqueda normalmente se detiene tan pronto como se encuentra una línea coincidente en
un archivo. Sin embargo, si el -c También se utiliza la opción (recuento), la coincidencia continúa en
para obtener el recuento correcto, y aquellos archivos que tengan al menos una coincidencia
se enumeran junto con sus recuentos. Usando esta opción con -c es una forma de
suprimiendo la lista de archivos sin coincidencias.
--etiqueta=nombre
Esta opción proporciona un nombre que se utilizará para la entrada estándar cuando los nombres de archivo
están saliendo. Si no se suministra, se utiliza "(entrada estándar)". No hay corto
formulario para esta opción.
- con búfer de línea
Cuando se da esta opción, la entrada se lee y se procesa línea por línea, y la
la salida se vacía después de cada escritura. De forma predeterminada, la entrada se lee en trozos grandes,
a menos que pcre2grep puede determinar que está leyendo desde una terminal (que es
actualmente solo es posible en entornos similares a Unix). La salida al terminal es
normalmente descargado automáticamente por el sistema operativo. Esta opción puede ser
útil cuando la entrada o salida está conectada a una tubería y no desea
pcre2grep para almacenar grandes cantidades de datos. Sin embargo, su uso afectará
rendimiento, y el -M La opción (multilínea) deja de funcionar.
- compensaciones de línea
En lugar de mostrar líneas o partes de líneas que coincidan, muestre cada coincidencia como una línea
número, el desplazamiento desde el inicio de la línea y una longitud. El número de línea es
terminado por dos puntos (como de costumbre; consulte el -n opción), y el desplazamiento y la longitud
están separados por una coma. En este modo, no se muestra ningún contexto. Eso es el -A,
-By -C las opciones se ignoran. Si hay más de una coincidencia en una línea, cada
de ellos se muestra por separado. Esta opción es mutuamente excluyente con --expediente-
compensaciones y --sólo coincidencia.
--lugar=nombre-local
Esta opción especifica una configuración regional que se utilizará para la coincidencia de patrones. Anula el
valor en el LC_TODOS or LC_CTYPE Variables de entorno. Si no hay ninguna localidad
especificado, se utiliza el valor predeterminado de la biblioteca PCRE2 (normalmente la configuración regional "C"). Allí
no es una forma abreviada de esta opción.
- límite de coincidencia=número
Procesar algunos patrones de expresión regular puede requerir una gran cantidad de
memoria, lo que en algunos casos conduce a un bloqueo del programa si no hay suficiente disponible.
Otros patrones pueden tardar mucho en buscar todas las coincidencias posibles.
instrumentos de cuerda. los pcre2_match () función que es llamada por pcre2grep para hacer el
la coincidencia tiene dos parámetros que pueden limitar los recursos que utiliza.
Los - límite de coincidencia La opción proporciona un medio para limitar el uso de recursos cuando
patrones de procesamiento que no van a coincidir, pero que tienen una gran
número de posibilidades en sus árboles de búsqueda. El ejemplo clásico es un patrón
que utiliza repeticiones ilimitadas anidadas. Internamente, PCRE2 usa una función llamada
partido() que llama repetidamente (a veces de forma recursiva). El límite establecido por
- límite de coincidencia se impone al número de veces que se llama a esta función durante una
coincidencia, que tiene el efecto de limitar la cantidad de retroceso que puede tomar
posición.
Los - límite de recursividad la opción es similar a - límite de coincidencia, pero en lugar de
limitando el número total de veces que partido() se llama, limita la profundidad
de llamadas recursivas, lo que a su vez limita la cantidad de memoria que se puede utilizar.
La profundidad de recursividad es un número menor que el número total de llamadas, porque
no todas las llamadas a partido() son recursivas. Este límite es de uso solo si está establecido
menor que - límite de coincidencia.
No hay formularios cortos para estas opciones. Se especifican las configuraciones predeterminadas
cuando se compila la biblioteca PCRE2, con el valor predeterminado predeterminado de 10 millones.
-M, --multilina
Permita que los patrones coincidan con más de una línea. Cuando se da esta opción, los patrones
puede contener de manera útil caracteres literales de nueva línea y apariciones internas de ^
y $ caracteres. El resultado de una coincidencia exitosa puede consistir en más de una
línea. La primera es la línea en la que comenzó el partido y la última es la línea
en el que terminó el partido. Si la cadena coincidente termina con una secuencia de nueva línea,
la salida termina al final de esa línea.
Cuando se establece esta opción, la biblioteca PCRE2 se llama en modo "multilínea".
Sin embargo, pcre2grep todavía procesa la entrada línea por línea. La diferencia es
que una cadena coincidente puede extenderse más allá del final de una línea y continuar en uno o
más líneas posteriores. La secuencia de nueva línea debe coincidir como parte del
patrón. Por ejemplo, para buscar la frase "expresión regular" en un archivo donde
"regular" puede estar al final de una línea y "expresión" al comienzo de la
siguiente línea, puede usar este comando:
pcre2grep -M 'expresión \ s + regular'
La secuencia de escape \ s coincide con cualquier carácter de espacio en blanco, incluidas las líneas nuevas,
y va seguido de + para que coincida con el espacio en blanco final en la primera línea como
así como posiblemente manejar una secuencia de nueva línea de dos caracteres.
Hay un límite al número de líneas que se pueden emparejar, impuesto por la forma
que pcre2grep almacena en búfer el archivo de entrada mientras lo analiza. Sin embargo, pcre2grep asegura
que al menos 8K caracteres o el resto del archivo (lo que sea más corto)
están disponibles para emparejar hacia adelante y, de manera similar, los caracteres 8K anteriores (o
todos los caracteres anteriores, si son menos de 8K) están garantizados para estar disponibles
para buscar aseveraciones. los -M La opción no funciona cuando la entrada es la línea de lectura
por línea (ver - con búfer de línea.)
-N tipo de nueva línea, --nueva línea=tipo de nueva línea
La biblioteca PCRE2 admite cinco convenciones diferentes para indicar los extremos de
líneas. Son las secuencias de un solo carácter CR (retorno de carro) y LF
(salto de línea), la secuencia de dos caracteres CRLF, una convención "anycrlf", que
reconoce cualquiera de los tres tipos anteriores, y una "cualquier" convención, en la que
Se supone que cualquier secuencia de finalización de línea Unicode finaliza una línea. Las secuencias Unicode
son los tres que acabamos de mencionar, más VT (tabulación vertical, U + 000B), FF (alimentación de formulario,
U + 000C), NEL (línea siguiente, U + 0085), LS (separador de línea, U + 2028) y PS (párrafo
separador, U + 2029).
Cuando se crea la biblioteca PCRE2, se especifica una secuencia de final de línea predeterminada.
Esta es normalmente la secuencia estándar para el sistema operativo. A no ser que
de lo contrario especificado por esta opción, pcre2grep usa el predeterminado de la biblioteca. los
los valores posibles para esta opción son CR, LF, CRLF, ANYCRLF o ANY. Esto lo hace
posible de usar pcre2grep para escanear archivos que provienen de otros entornos
sin tener que modificar sus finales de línea. Si los datos que se están escaneando
no está de acuerdo con la convención establecida por esta opción, pcre2grep puede comportarse en
maneras extrañas. Tenga en cuenta que esta opción no se aplica a los archivos especificados por -f,
--excluir deo --incluye-de opciones, que se espera que utilicen el
secuencia de nueva línea estándar del sistema operativo.
-n, --número de línea
Anteponga a cada línea de salida su número de línea en el archivo, seguido de dos puntos para
líneas coincidentes o un guión para las líneas de contexto. Si el nombre del archivo también se
salida, precede al número de línea. Cuando el -M La opción hace que un patrón
coincide con más de una línea, solo la primera está precedida por su número de línea. Esta
la opción es forzada si - compensaciones de línea se utiliza.
--no-jit Si la biblioteca PCRE2 está construida con soporte para compilación justo a tiempo (que
acelera el emparejamiento), pcre2grep hace uso de esto automáticamente, a menos que fuera
explícitamente deshabilitado en el momento de la compilación. Esta opción se puede utilizar para deshabilitar el uso de
JIT en tiempo de ejecución. Se proporciona para probar y solucionar problemas. Eso
nunca debería ser necesario en uso normal.
-o, --sólo coincidencia
Muestre solo la parte de la línea que coincidió con un patrón en lugar de toda la línea.
En este modo, no se muestra ningún contexto. Eso es el -A, -By -C las opciones son
ignorado. Si hay más de una coincidencia en una línea, se muestra cada una de ellas.
por separado. Si -o se combina con -v (invierta el sentido de la coincidencia para encontrar
líneas no coincidentes), no se genera ninguna salida, pero el código de retorno está establecido
adecuadamente. Si la parte correspondiente de la línea está vacía, no se emite nada
a menos que se imprima el nombre del archivo o el número de línea, en cuyo caso
se muestra en una línea que de otro modo estaría vacía. Esta opción es mutuamente excluyente con --expediente-
compensaciones y - compensaciones de línea.
-onúmero, --sólo coincidencia=número
Muestre solo la parte de la línea que coincidió con los paréntesis de captura del
número dado. Se admiten hasta 32 paréntesis de captura, y -o0 es
equivalente a -o sin un número. Debido a que estas opciones se pueden dar sin
argumento (ver arriba), si un argumento está presente, debe ser dado en el mismo
elemento de shell, por ejemplo, -o3 o --only-matching = 2. Los comentarios dados para el
El caso sin argumento anterior también se aplica a este caso. Si la captura especificada
los paréntesis no existen en el patrón, o no se establecieron en la coincidencia, nada
se emite a menos que se emita el nombre del archivo o el número de línea.
Si esta opción se da varias veces, se generan varias subcadenas, en el
orden se dan las opciones. Por ejemplo, -o3 -o1 -o3 provoca las subcadenas
coincidir mediante la captura de paréntesis 3 y 1 y luego 3 de nuevo para ser la salida. Por
por defecto, no hay separador (pero vea la siguiente opción).
--om-separador=texto
Especifique una cadena de separación para múltiples apariciones de -o. El valor predeterminado es
cuerda vacía. Las cuerdas de separación nunca están coloreadas.
-q, --tranquilo
Trabaje en silencio, es decir, no muestre nada excepto mensajes de error. El estado de salida
indica si se encontraron coincidencias o no.
-r, --recursivo
Si alguna ruta dada es un directorio, escanee de forma recursiva los archivos que contiene, tomando
nota de cualquier --incluir y --excluir ajustes. De forma predeterminada, un directorio se lee como
un archivo normal; en algunos sistemas operativos esto da un final de archivo inmediato.
Esta opción es una forma abreviada de configurar el -d opción a "recurrir".
- límite de recursividad=número
See - límite de coincidencia anterior.
-s, --Ningún mensaje
Suprima los mensajes de error sobre archivos inexistentes o ilegibles. Tales archivos son
saltó silenciosamente. Sin embargo, el código de retorno sigue siendo 2, incluso si se encontraron coincidencias
en otros archivos.
-u, --utf-8
Funciona en modo UTF-8. Esta opción está disponible solo si se ha compilado PCRE2
con soporte UTF-8. Todos los patrones (incluidos los de cualquier --excluir y
--incluir opciones) y todas las líneas de asunto que se escanean deben ser cadenas válidas
de caracteres UTF-8.
-V, --versión
Escriba los números de versión de pcre2grep y la biblioteca PCRE2 al estándar
salida y luego salir. Cualquier otra cosa en la línea de comando se ignora.
-v, --invertir partido
Invierte el sentido de la coincidencia, de modo que las líneas que no no coincidir con cualquiera de los
los patrones son los que se encuentran.
-w, --palabra-regex, --palabra-regexp
Fuerza los patrones para que coincidan solo con palabras completas. Esto es equivalente a tener \ b en
el inicio y el final del patrón. Esta opción se aplica solo a los patrones que
se comparan con el contenido de los archivos; no se aplica a patrones
especificado por cualquiera de los --incluir or --excluir .
-x, --line-regex, --line-regexp
Forzar el anclaje de los patrones (cada uno debe comenzar a coincidir al comienzo de
una línea) y, además, exigir que coincidan con líneas completas. Esto es equivalente
a tener ^ y $ caracteres al principio y al final de cada alternativa de nivel superior
rama en cada patrón. Esta opción se aplica solo a los patrones que están
comparado con el contenido de los archivos; no se aplica a los patrones especificados
por cualquiera de los --incluir or --excluir .
MEDIO AMBIENTE VARIABLES
Las variables de entorno LC_TODOS y LC_CTYPE se examinan, en ese orden, para una configuración regional.
Se utiliza el primero que se establece. Esto puede ser anulado por el --lugar opción. Si no
La configuración regional está configurada, se utiliza la configuración predeterminada de la biblioteca PCRE2 (generalmente la configuración regional "C").
LINEAS NUEVAS
Los -N (--nueva línea) opción permite pcre2grep para escanear archivos con diferente nueva línea
convenciones del valor predeterminado. Cualquier parte de los archivos de entrada que se escriban en el
La salida estándar se copia de forma idéntica, con cualquier secuencia de nueva línea que tengan en el
aporte. Sin embargo, la configuración de esta opción no afecta la interpretación de los archivos.
especificado por el -f, --excluir deo --incluye-de opciones, que se supone que utilizan
la secuencia de nueva línea estándar del sistema operativo, ni afecta la forma en que
pcre2grep escribe mensajes informativos en los flujos de salida y error estándar. Para
estos utiliza la cadena "\ n" para indicar nuevas líneas, confiando en la biblioteca CI / O para
convierta esto en una secuencia apropiada.
OPCIONES COMPATIBILIDAD
Muchas de las formas cortas y largas de pcre2grepLas opciones son las mismas que en GNU. grep
programa. Cualquier opción larga del formulario --xxx-expreg.reg (Terminología GNU) también está disponible como
--xxx-expresión regular (Terminología PCRE2). sin embargo, el - lista de archivos, - compensaciones de archivo, --incluir-dir,
- compensaciones de línea, --lugar, - límite de coincidencia, -M, --multilina, -N, --nueva línea, --om-separador,
- límite de recursividad, -uy --utf-8 las opciones son específicas para pcre2grep, como es el uso de la
--sólo coincidencia opción con un número de paréntesis de captura.
Aunque la mayoría de las opciones comunes funcionan de la misma manera, algunas son diferentes en pcre2grep.
Por ejemplo, la directriz --incluir el argumento de la opción es un glob para GNU grep, pero un regular
expresión para pcre2grep. Si tanto el -c y -l se proporcionan opciones, solo listas grep de GNU
nombres de archivo, sin recuentos, pero pcre2grep da los recuentos también.
OPCIONES CON DATOS
Hay cuatro formas diferentes de especificar una opción con datos. Si un corto
se utiliza la opción de formulario, los datos pueden seguir inmediatamente o (con una excepción) en el siguiente
elemento de línea de comando. Por ejemplo:
-f / algunos / archivo
-f / algunos / archivo
La excepción es la -o opción, que puede aparecer con o sin datos. Debido a esto,
si hay datos presentes, deben seguir inmediatamente en el mismo elemento, por ejemplo -o3.
Si se usa una opción de formato largo, los datos pueden aparecer en el mismo elemento de línea de comando,
separados por un carácter igual, o (con dos excepciones) puede aparecer en el siguiente
elemento de línea de comando. Por ejemplo:
--file = / some / file
--archivo / algunos / archivo
Sin embargo, tenga en cuenta que si desea proporcionar un nombre de archivo que comience con ~ como datos en un shell
comando, y hacer que el shell se expanda ~ a un directorio de inicio, debe separar el nombre del archivo
de la opción, porque el shell no trata ~ especialmente a menos que esté al comienzo de
un artículo.
Las excepciones a lo anterior son las --color (o --color) y --sólo coincidencia opciones, para
cuyos datos son opcionales. Si una de estas opciones tiene datos, debe proporcionarse en
la primera forma, utilizando un carácter igual. De lo contrario pcre2grep asumirá que no tiene
datos.
PAREO ERRORES
Es posible proporcionar una expresión regular que tarda mucho en no coincidir
ciertas líneas. Estos patrones normalmente implican repeticiones indefinidas anidadas, por ejemplo:
(a +) * \ d cuando se compara con una línea de a sin un dígito final. La coincidencia de PCRE2
La función tiene un límite de recursos que hace que se anule en estas circunstancias. Si esto
sucede, pcre2grep muestra un mensaje de error y la línea que causó el problema al
flujo de error estándar. Si hay más de 20 errores de este tipo, pcre2grep se rinde.
Los - límite de coincidencia opción de pcre2grep se puede utilizar para establecer el límite general de recursos; allí
es una segunda opción llamada - límite de recursividad que establece un límite en la cantidad de memoria
(generalmente pila) que se usa (vea la discusión de estas opciones arriba).
La diagnostica
El estado de salida es 0 si se encontraron coincidencias, 1 si no se encontraron coincidencias y 2 para la sintaxis
errores, líneas demasiado largas, archivos inexistentes o inaccesibles (incluso si se encontraron coincidencias en
otros archivos) o demasiados errores de coincidencia. Utilizando el -s opción para suprimir mensajes de error
acerca de archivos inaccesibles no afecta el código de retorno.
Use pcre2grep en línea usando los servicios de onworks.net