Il s'agit de la commande pcre2grep qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pcre2grep - un grep avec des expressions régulières compatibles Perl.
SYNOPSIS
pcre2grep [choix] [longue choix] [modèle] [chemin1 chemin2 ...]
DESCRIPTION
pcre2grep recherche dans les fichiers des modèles de caractères, de la même manière que les autres commandes grep
faire, mais il utilise la bibliothèque d'expressions régulières PCRE2 pour prendre en charge les modèles qui sont
compatible avec les expressions régulières de Perl 5. Voir pcre2syntaxe(3) pour un rapide-
résumé de référence de la syntaxe du modèle, ou modèle pcre2(3) pour une description complète du
syntaxe et sémantique des expressions régulières prises en charge par PCRE2.
Les modèles, qu'ils soient fournis sur la ligne de commande ou dans un fichier séparé, sont fournis sans
délimiteurs. Par exemple:
pcre2grep jeudi /etc/motd
Si vous essayez d'utiliser des délimiteurs (par exemple, en entourant un motif de barres obliques, comme
est courant dans les scripts Perl), ils sont interprétés comme faisant partie du modèle. Les citations peuvent de
bien sûr être utilisé pour délimiter des motifs sur la ligne de commande car ils sont interprétés par le
shell, et en effet les guillemets sont requis si un motif contient un espace blanc ou un shell
métacaractères.
Le premier argument qui suit tout paramètre d'option est traité comme le modèle unique à
correspondait quand ni l'un ni l'autre -e ni -f est présent. Inversement, lorsque l'une de ces options ou les deux
sont utilisés pour spécifier des modèles, tous les arguments sont traités comme des noms de chemin. Au moins un des -e,
-f, ou un modèle d'argument doit être fourni.
Si aucun fichier n'est spécifié, pcre2grep lit l'entrée standard. L'entrée standard peut également
être référencé par un nom composé d'un seul tiret. Par exemple:
pcre2grep certain-modèle fichier1 - fichier3
Les fichiers d'entrée sont recherchés ligne par ligne. Par défaut, chaque ligne qui correspond à un motif est
copié sur la sortie standard, et s'il y a plus d'un fichier, le nom du fichier est sorti
au début de chaque ligne, suivi de deux points. Cependant, il existe des options qui peuvent
changer comment pcre2grep se comporte. En particulier, le -M l'option permet de rechercher
des chaînes qui s'étendent sur les limites des lignes. Ce qui définit une limite de ligne est contrôlé par le -N
(--nouvelle ligne) option.
La quantité de mémoire utilisée pour la mise en mémoire tampon des fichiers en cours d'analyse est contrôlée par un
paramètre qui peut être réglé par le --taille du tampon option. La valeur par défaut pour ce
paramètre est spécifié lorsque pcre2grep est construit, la valeur par défaut étant 20K. UNE
bloc de mémoire trois fois cette taille est utilisé (pour permettre la mise en mémoire tampon "avant" et "après"
lignes). Une erreur se produit si une ligne déborde du tampon.
Les modèles ne peuvent pas dépasser 8 Ko ou BUFSIZ octets, selon la valeur la plus élevée. BUFSIZ est
défini dans . Lorsqu'il y a plus d'un modèle (spécifié par l'utilisation de -e
et/ou -f), chaque motif est appliqué à chaque ligne dans l'ordre dans lequel ils sont définis,
sauf que tous les -e les modèles sont essayés avant le -f modèles
Par défaut, dès qu'un motif correspond à une ligne, aucun autre motif n'est pris en compte.
Toutefois, si --Couleur (ou --Couleur) est utilisé pour colorer les sous-chaînes correspondantes, ou si --seul-
assorti, --file-offsets, ou --décalages de ligne est utilisé pour sortir seulement la partie de la ligne
qui correspond (soit affiché littéralement, soit comme un décalage), la numérisation reprend immédiatement
après la correspondance, afin que d'autres correspondances sur la même ligne puissent être trouvées. S'il y a
plusieurs motifs, ils sont tous essayés sur le reste de la ligne, mais des motifs qui
suivre celui qui correspond ne sont pas essayés sur la première partie de la ligne.
Ce comportement signifie que l'ordre dans lequel plusieurs modèles sont spécifiés peut affecter
la sortie lorsque l'une des options ci-dessus est utilisée. Ce n'est plus le même comportement que
GNU grep, qui parvient maintenant à afficher les correspondances antérieures pour les modèles ultérieurs (tant que
il n'y a pas de chevauchement).
Les modèles pouvant correspondre à une chaîne vide sont acceptés, mais les correspondances de chaîne vide ne sont jamais
reconnu. Un exemple est le modèle "(super)?(man)?", dans lequel tous les composants sont
optionnel. Ce modèle trouve toutes les occurrences de « super » et « man » ; la sortie diffère
de la correspondance avec "super|man" lorsque seules les sous-chaînes correspondantes sont affichées.
Si la LC_TOUS or LC_CTYPE la variable d'environnement est définie, pcre2grep utilise la valeur pour définir un
locale lors de l'appel de la bibliothèque PCRE2. Les --lieu L'option peut être utilisée pour outrepasser cela.
SUPPORT POUR COMPRIMÉ DES DOSSIERS
Il est possible de compiler pcre2grep pour qu'il utilise libz or libbz2 lire les fichiers dont
les noms se terminent par .gz or . Bz2, respectivement. Vous pouvez savoir si votre binaire a un support
pour l'un de ces types de fichiers ou les deux en l'exécutant avec le --Aidez-moi option. Si la
le support approprié n'est pas présent, les fichiers sont traités comme du texte brut. L'entrée standard est
toujours aussi traité.
BINARY DES DOSSIERS
Par défaut, un fichier qui contient un octet zéro binaire dans les 1024 premiers octets est
identifié comme un fichier binaire, et est traité spécialement. (GNU grep identifie également les binaires
fichiers de cette manière.) Voir le --fichiers-binaires option pour un moyen de changer la façon
les fichiers binaires sont traités.
OPTIONS
L'ordre dans lequel certaines des options apparaissent peut affecter la sortie. Par exemple, à la fois le
-h et -l les options affectent l'impression des noms de fichiers. Celui qui vient plus tard dans la commande
la ligne sera celle qui prendra effet. De même, sauf indication contraire ci-dessous, si une option
est donné deux fois, le dernier réglage est utilisé. Les valeurs numériques des options peuvent être suivies de
K ou M, pour signifier la multiplication par 1024 ou 1024*1024 respectivement.
-- Ceci termine la liste des options. Il est utile si l'élément suivant sur le
la ligne de commande commence par un tiret mais n'est pas une option. Cela permet à la
traitement des modèles et des noms de fichiers commençant par des tirets.
-A nombre, --after-context=nombre
Sortie nombre lignes de contexte après chaque ligne correspondante. Si les noms de fichiers et/ou
les numéros de ligne sont affichés, un trait d'union est utilisé au lieu de deux points pour
les lignes de contexte. Une ligne contenant "--" est sortie entre chaque groupe de lignes,
à moins qu'ils ne soient en fait contigus dans le fichier d'entrée. La valeur de nombre is
devrait être relativement faible. Cependant, pcre2grep garantit d'avoir jusqu'à 8K
du texte suivant disponible pour la sortie contextuelle.
-a, --texte
Traitez les fichiers binaires comme du texte. Ceci équivaut à --fichiers-binaires=texte.
-B nombre, --avant-context=nombre
Sortie nombre lignes de contexte avant chaque ligne correspondante. Si les noms de fichiers et/ou
les numéros de ligne sont affichés, un trait d'union est utilisé au lieu de deux points pour
les lignes de contexte. Une ligne contenant "--" est sortie entre chaque groupe de lignes,
à moins qu'ils ne soient en fait contigus dans le fichier d'entrée. La valeur de nombre is
devrait être relativement faible. Cependant, pcre2grep garantit d'avoir jusqu'à 8K
du texte précédent disponible pour la sortie contextuelle.
--fichiers-binaires=mot
Spécifiez comment les fichiers binaires doivent être traités. Si le mot est "binaire" (le
par défaut), la correspondance de modèle est effectuée sur les fichiers binaires, mais la seule sortie est
"Fichier binaire matches" lorsqu'une correspondance réussit. Si le mot est "texte", qui
est équivalent à la -a or --texte option, les fichiers binaires sont traités dans le même
manière comme n'importe quel autre fichier. Dans ce cas, lorsqu'une correspondance réussit, la sortie peut être
ordures binaires, qui peuvent avoir des effets désagréables si elles sont envoyées à un terminal. Si le mot
est "sans correspondance", ce qui équivaut à la -I option, les fichiers binaires ne sont pas
traité du tout ; ils sont supposés ne pas présenter d'intérêt et sont ignorés sans
provoquant une sortie ou affectant le code de retour.
--taille-tampon=nombre
Définissez le paramètre qui contrôle la quantité de mémoire utilisée pour la mise en mémoire tampon des fichiers qui
sont en cours de numérisation.
-C nombre, --context=nombre
Sortie nombre lignes de contexte avant et après chaque ligne correspondante. Cette
équivaut à régler les deux -A et -B à la même valeur.
-c, --compter
N'éditez pas de lignes à partir des fichiers en cours d'analyse ; à la place, sortir le
nombre de correspondances (ou de non-correspondances si -v est utilisé) qui aurait autrement
fait apparaître des lignes. Par défaut, ce nombre est le même que le nombre de
lignes supprimées, mais si le -M l'option (multiligne) est utilisée (sans -v), là
peut être plus de lignes supprimées que le nombre de correspondances.
Si aucune ligne n'est sélectionnée, le nombre zéro est sorti. Si plusieurs fichiers sont
étant balayés, un compte est produit pour chacun d'eux. Cependant, si le --fichiers-avec-
allumettes L'option est également utilisée, seuls les fichiers dont le nombre est supérieur à zéro
sont répertoriés. Lorsque -c Est utilisé, le -A, -B et -C les options sont ignorées.
--Couleur, --Couleur
Si cette option est donnée sans aucune donnée, elle équivaut à "--colour=auto".
Si des données sont requises, elles doivent être fournies dans la même rubrique shell, séparées par un
signe égal.
--couleur=Plus-value, --couleur=Plus-value
Cette option spécifie dans quelles circonstances les parties d'une ligne qui correspondent
un motif doit être coloré dans la sortie. Par défaut, la sortie n'est pas
coloré. La valeur (qui est facultative, voir ci-dessus) peut être "jamais", "toujours" ou
"auto". Dans ce dernier cas, la coloration n'a lieu que si la sortie standard est
connecté à une borne. Plus de ressources sont utilisées lorsque la coloration est activée,
car pcre2grep doit rechercher toutes les correspondances possibles dans une ligne, pas seulement
un, afin de les colorer tous.
La couleur qui est utilisée peut être spécifiée en définissant la variable d'environnement
PCRE2GREP_COLOUR ou PCRE2GREP_COLOR. La valeur de cette variable doit être un
chaîne de deux nombres séparés par un point-virgule. Ils sont copiés directement dans
la chaîne de contrôle pour définir la couleur sur un terminal, c'est donc votre
responsabilité de s'assurer qu'ils ont un sens. Si ni l'un ni l'autre de l'environnement
variables est définie, la valeur par défaut est "1;31", ce qui donne du rouge.
-D action, --périphériques=action
Si un chemin d'entrée n'est pas un fichier normal ou un répertoire, "action" spécifie comment il
est à traiter. Les valeurs valides sont "read" (valeur par défaut) ou "skip" (silencieusement
sauter le chemin).
-d action, --répertoires=action
Si un chemin d'entrée est un répertoire, "action" spécifie comment il doit être traité.
Les valeurs valides sont "lecture" (la valeur par défaut dans les environnements non Windows, par
compatibilité avec GNU grep), "recurse" (équivalent au -r option), ou "ignorer"
(ignorez silencieusement le chemin, la valeur par défaut dans les environnements Windows). Dans le "lire"
cas, les répertoires sont lus comme s'il s'agissait de fichiers ordinaires. Dans certaines exploitations
systèmes l'effet de la lecture d'un répertoire comme celui-ci est une fin de fichier immédiate ;
dans d'autres, cela peut provoquer une erreur.
-e modèle, --regex=modèle, --expression régulière=modèle
Spécifiez un modèle à faire correspondre. Cette option peut être utilisée plusieurs fois pour
pour spécifier plusieurs modèles. Il peut également être utilisé comme un moyen de spécifier un seul
modèle qui commence par un trait d'union. Lorsque -e est utilisé, aucun modèle d'argument n'est pris
à partir de la ligne de commande ; tous les arguments sont traités comme des noms de fichiers. Il n'y a pas
limiter le nombre de motifs. Ils sont appliqués à chaque ligne dans l'ordre de
laquelle ils sont définis jusqu'à ce qu'on corresponde.
If -f s'utilise avec -e, les modèles de ligne de commande sont mis en correspondance en premier, suivis de
les motifs du ou des fichiers, indépendamment de l'ordre dans lequel ces options
sont spécifiés. Notez que l'utilisation multiple de -e n'est pas la même chose qu'un seul motif
avec des alternatives. Par exemple, X|Y recherche le premier caractère d'une ligne qui est
X ou Y, alors que si les deux motifs sont donnés séparément, avec X en premier,
pcre2grep trouve X s'il est présent, même s'il suit Y dans la ligne. Il trouve Y
seulement s'il n'y a pas de X dans la ligne. Cela n'a d'importance que si vous utilisez -o or
--Couleur pour afficher la ou les parties de la ligne qui correspondent.
--exclure=modèle
Les fichiers (mais pas les répertoires) dont les noms correspondent au modèle sont ignorés sans
être en cours de traitement. Cela s'applique à tous les fichiers, qu'ils soient répertoriés sur la ligne de commande,
obtenu à partir de --liste-de-fichiers, ou en scannant un répertoire. Le patron est un PCRE2
expression régulière et correspond au composant final du nom de fichier,
pas tout le chemin. Les -F, -w et -x les options ne s'appliquent pas à ce modèle.
L'option peut être donnée autant de fois que vous le souhaitez afin de spécifier plusieurs
motifs. Si un nom de fichier correspond à la fois à un --comprendre et le --exclure modèle, il
est exclu. Il n'y a pas de forme abrégée pour cette option.
--exclure-de=nom de fichier
Traitez chaque ligne non vide du fichier comme les données d'un --exclure option. Quoi
constitue une nouvelle ligne lors de la lecture du fichier est la valeur par défaut du système d'exploitation.
Le --nouvelle ligne option n'a aucun effet sur cette option. Cette option peut être donnée plus
qu'une fois afin de spécifier un nombre de fichiers à lire.
--exclure-rép=modèle
Les répertoires dont les noms correspondent au modèle sont ignorés sans être traités,
quel que soit le réglage du --recursive option. Ceci s'applique à tous les répertoires,
si répertorié sur la ligne de commande, obtenu à partir de --liste-de-fichiers, ou en scannant un
Dossier Parent. Le modèle est une expression régulière PCRE2 et correspond
par rapport au composant final du nom de répertoire, pas le chemin entier. Les -F,
-w et -x les options ne s'appliquent pas à ce modèle. L'option peut être donnée à n'importe quel
nombre de fois afin de spécifier plus d'un modèle. Si un répertoire
correspond aux deux --include-dir et --exclure-rép, il est exclu. Il n'y a pas de court
formulaire pour cette option.
-F, --chaînes-fixes
Interprétez chaque modèle de correspondance de données comme une liste de chaînes fixes, séparées par
nouvelles lignes, au lieu d'une expression régulière. Qu'est-ce qui constitue une nouvelle ligne pour
cet objectif est contrôlé par le --nouvelle ligne option. La -w (correspond à un mot) et
-x (faire correspondre la ligne entière) les options peuvent être utilisées avec -F. Ils s'appliquent à chacun des
chaînes fixes. Une ligne est sélectionnée si l'une des chaînes fixes s'y trouve
(sujet à -w or -x, si présent). Cette option s'applique uniquement aux modèles qui
sont comparés au contenu des fichiers ; il ne s'applique pas aux modèles
spécifié par l'un des --comprendre or --exclure options.
-f nom de fichier, --fichier=nom de fichier
Lisez les modèles du fichier, un par ligne, et comparez-les à chaque ligne de
saisir. Ce qui constitue une nouvelle ligne lors de la lecture du fichier est le fonctionnement
valeur par défaut du système. Les --nouvelle ligne option n'a aucun effet sur cette option. À la traîne
l'espace blanc est supprimé de chaque ligne et les lignes vides sont ignorées. Un vide
Le fichier ne contient aucun modèle et ne correspond donc à rien. Voir aussi les commentaires
sur plusieurs modèles par rapport à un seul modèle avec des alternatives dans le
description de -e au dessus.
Si cette option est donnée plus d'une fois, tous les fichiers spécifiés sont lus. Une donnée
La ligne est sortie si l'un des modèles lui correspond. Un nom de fichier peut être donné comme "-"
pour se référer à l'entrée standard. Lorsque -f est utilisé, les modèles spécifiés sur le
ligne de commande en utilisant -e peut également être présent; ils sont testés avant le fichier
motifs. Cependant, aucun autre modèle n'est extrait de la ligne de commande ; tous
les arguments sont traités comme les noms des chemins à rechercher.
--liste-de-fichiers=nom de fichier
Lire une liste de fichiers et/ou de répertoires qui doivent être analysés à partir du
fichier, un par ligne. L'espace blanc de fin est supprimé de chaque ligne et vide
les lignes sont ignorées. Ces chemins sont traités avant ceux qui sont répertoriés sur le
ligne de commande. Le nom du fichier peut être donné comme "-" pour se référer à l'entrée standard.
If --déposer et --liste-de-fichiers sont tous deux spécifiés comme "-", les motifs sont lus en premier.
Ceci n'est utile que lorsque l'entrée standard est une borne, à partir de laquelle
les lignes (la liste des fichiers) peuvent être lues après une indication de fin de fichier. Si ce
option est donnée plus d'une fois, tous les fichiers spécifiés sont lus.
--file-offsets
Au lieu d'afficher des lignes ou des parties de lignes qui correspondent, affichez chaque correspondance sous forme de
offset du début du fichier et une longueur, séparés par une virgule. Dans ce
mode, aucun contexte n'est affiché. C'est le -A, -B et -C les options sont ignorées. Si
il y a plus d'une correspondance dans une ligne, chacune d'elles est affichée séparément. Cette
l'option est mutuellement exclusive avec --décalages de ligne et --seulement-correspondance.
-H, --avec-nom-de-fichier
Forcer l'inclusion du nom de fichier au début des lignes de sortie lors de la recherche
un seul fichier. Par défaut, le nom du fichier n'est pas affiché dans ce cas. Pour
lignes correspondantes, le nom du fichier est suivi de deux points ; pour les lignes de contexte, un
le séparateur de tiret est utilisé. Si un numéro de ligne est également en cours de sortie, il suit le
nom de fichier. Quand le -M L'option fait qu'un motif correspond à plus d'une ligne, seulement
le premier est précédé du nom du fichier.
-h, --pas de nom de fichier
Supprimez les noms de fichiers de sortie lors de la recherche de plusieurs fichiers. Par défaut, le fichier
les noms sont affichés lorsque plusieurs fichiers sont recherchés. Pour les lignes correspondantes, le fichier
le nom est suivi de deux points ; pour les lignes de contexte, un tiret séparateur est utilisé. Si
un numéro de ligne est également affiché, il suit le nom du fichier.
--Aidez-moi Afficher un message d'aide, donnant de brefs détails sur les options de commande et le type de fichier
support, puis quittez. Tout le reste sur la ligne de commande est ignoré.
-I Ignorer les fichiers binaires. Ceci équivaut à --fichiers-binaires=sans-match.
-i, --ignore-cas
Ignorez les distinctions majuscules/minuscules lors des comparaisons.
--comprendre=modèle
Si seulement --comprendre modèles sont spécifiés, les seuls fichiers qui sont traités sont
ceux qui correspondent à l'un des modèles (et ne correspondent pas à un --exclure modèle).
Cette option n'affecte pas les répertoires, mais elle s'applique à tous les fichiers, qu'ils soient
répertorié sur la ligne de commande, obtenu à partir de --liste-de-fichiers, ou en scannant un
annuaire. Le modèle est une expression régulière PCRE2 et est comparé au
composant final du nom de fichier, pas le chemin entier. Les -F, -w et -x
les options ne s'appliquent pas à ce modèle. L'option peut être donnée n'importe quel nombre de
fois. Si un nom de fichier correspond à la fois à un --comprendre et le --exclure modèle, c'est
exclu. Il n'y a pas de forme abrégée pour cette option.
--include-de=nom de fichier
Traitez chaque ligne non vide du fichier comme les données d'un --comprendre option. Quoi
constitue une nouvelle ligne à cet effet est la valeur par défaut du système d'exploitation. Les
--nouvelle ligne option n'a aucun effet sur cette option. Cette option peut être donnée à n'importe quel
nombre de fois; tous les fichiers sont lus.
--include-dir=modèle
Si seulement --include-dir modèles sont spécifiés, les seuls répertoires qui sont
traités sont ceux qui correspondent à l'un des modèles (et ne correspondent pas à un
--exclure-rép modèle). Ceci s'applique à tous les annuaires, qu'ils soient répertoriés sur le
ligne de commande, obtenue à partir de --liste-de-fichiers, ou en analysant un répertoire parent. Les
pattern est une expression régulière PCRE2 et est comparée à la finale
composant du nom du répertoire, pas le chemin entier. Les -F, -w et -x Options
ne s'applique pas à ce modèle. L'option peut être donnée autant de fois que vous le souhaitez. Si un
le répertoire correspond aux deux --include-dir et --exclure-rép, il est exclu. Il y a
pas de forme abrégée pour cette option.
-L, --files-sans-correspondance
Au lieu de sortir des lignes des fichiers, il suffit de sortir les noms des fichiers
qui ne contiennent aucune ligne qui aurait été sortie. Chaque nom de fichier est
sortie une fois, sur une ligne séparée.
-l, --files-with-matchs
Au lieu de sortir des lignes des fichiers, il suffit de sortir les noms des fichiers
contenant des lignes qui auraient été sorties. Chaque nom de fichier est sorti une fois, sur
une ligne séparée. La recherche s'arrête normalement dès qu'une ligne correspondante est trouvée dans
un fichier. Cependant, si le -c (count) option est également utilisée, la correspondance se poursuit dans
afin d'obtenir le nombre correct, et les fichiers qui ont au moins une correspondance
sont répertoriés avec leur nombre. En utilisant cette option avec -c est une façon de
suppression de la liste des fichiers sans correspondance.
--étiqueter=prénom
Cette option fournit un nom à utiliser pour l'entrée standard lorsque les noms de fichiers
sont en cours de sortie. S'il n'est pas fourni, "(entrée standard)" est utilisé. Il n'y a pas de court
formulaire pour cette option.
--line-buffered
Lorsque cette option est donnée, l'entrée est lue et traitée ligne par ligne, et le
la sortie est vidée après chaque écriture. Par défaut, l'entrée est lue en gros morceaux,
à moins que pcre2grep peut déterminer qu'il lit à partir d'un terminal (qui est
actuellement possible uniquement dans les environnements de type Unix). La sortie vers la borne est
normalement automatiquement vidé par le système d'exploitation. Cette option peut être
utile lorsque l'entrée ou la sortie est attachée à un tuyau et que vous ne voulez pas
pcre2grep pour mettre en mémoire tampon de grandes quantités de données. Cependant, son utilisation affectera
performances, et le -M L'option (multiligne) cesse de fonctionner.
--décalages de ligne
Au lieu d'afficher des lignes ou des parties de lignes qui correspondent, affichez chaque correspondance sous forme de ligne
nombre, le décalage depuis le début de la ligne et une longueur. Le numéro de ligne est
terminé par deux points (comme d'habitude, voir le -n option), et le décalage et la longueur
sont séparés par une virgule. Dans ce mode, aucun contexte n'est affiché. C'est le -A,
-B et -C les options sont ignorées. S'il y a plus d'une correspondance dans une ligne, chaque
d'entre eux est montré séparément. Cette option est mutuellement exclusive avec --déposer-
compensations et --seulement-correspondance.
--lieu=nom_local
Cette option spécifie un paramètre régional à utiliser pour la correspondance de modèle. Il remplace le
valeur dans le LC_TOUS or LC_CTYPE Variables d'environnement. Si aucun paramètre régional n'est
spécifié, la valeur par défaut de la bibliothèque PCRE2 (généralement la locale "C") est utilisée. Là
n'est pas une forme abrégée pour cette option.
--match-limite=nombre
Le traitement de certains modèles d'expressions régulières peut nécessiter une très grande quantité de
mémoire, conduisant dans certains cas à un plantage du programme s'il n'y en a pas assez.
D'autres modèles peuvent prendre beaucoup de temps pour rechercher toutes les correspondances possibles
cordes. Les pcre2_match() fonction appelée par pcre2grep pour faire le
correspondance a deux paramètres qui peuvent limiter les ressources qu'il utilise.
Le --match-limite L'option fournit un moyen de limiter l'utilisation des ressources lorsque
des modèles de traitement qui ne vont pas correspondre, mais qui ont une très grande
nombre de possibilités dans leurs arbres de recherche. L'exemple classique est un modèle
qui utilise des répétitions illimitées imbriquées. En interne, PCRE2 utilise une fonction appelée
rencontre() qu'il appelle à plusieurs reprises (parfois de manière récursive). La limite fixée par
--match-limite est imposée sur le nombre de fois que cette fonction est appelée au cours d'un
match, ce qui a pour effet de limiter la quantité de retour en arrière qui peut prendre
place.
Le --récursion-limite l'option est similaire à --match-limite, mais au lieu de
limiter le nombre total de fois que rencontre() est appelé, il limite la profondeur
d'appels récursifs, ce qui à son tour limite la quantité de mémoire pouvant être utilisée.
La profondeur de récursivité est un nombre inférieur au nombre total d'appels, car
pas tous les appels à rencontre() sont récursifs. Cette limite n'est utile que si elle est fixée
plus petit que --match-limite.
Il n'y a pas de formulaires abrégés pour ces options. Les paramètres par défaut sont spécifiés
lorsque la bibliothèque PCRE2 est compilée, la valeur par défaut étant 10 millions.
-M, --multiligne
Autoriser les motifs à correspondre à plus d'une ligne. Lorsque cette option est donnée, les motifs
peut contenir utilement des caractères de nouvelle ligne littéraux et des occurrences internes de ^
et les caractères $. Le résultat d'une correspondance réussie peut consister en plusieurs
ligne. Le premier est la ligne dans laquelle le match a commencé, et le dernier est la ligne
dans lequel le match s'est terminé. Si la chaîne correspondante se termine par une séquence de saut de ligne, le
la sortie se termine à la fin de cette ligne.
Lorsque cette option est cochée, la librairie PCRE2 est appelée en mode "multiligne".
Toutefois, pcre2grep traite toujours l'entrée ligne par ligne. La différence est
qu'une chaîne correspondante peut s'étendre au-delà de la fin d'une ligne et continuer sur un ou
plus de lignes suivantes. La séquence de saut de ligne doit correspondre dans le cadre de la
modèle. Par exemple, pour rechercher l'expression "expression régulière" dans un fichier où
"regular" peut être à la fin d'une ligne et "expression" au début de la
ligne suivante, vous pouvez utiliser cette commande :
pcre2grep -M 'régulier\s+expression'
La séquence d'échappement \s correspond à n'importe quel caractère d'espace blanc, y compris les sauts de ligne,
et est suivi de + afin de faire correspondre l'espace blanc à la fin de la première ligne comme
ainsi que la gestion possible d'une séquence de saut de ligne à deux caractères.
Il y a une limite au nombre de lignes pouvant être mises en correspondance, imposée d'ailleurs
qui pcre2grep met en mémoire tampon le fichier d'entrée pendant qu'il l'analyse. Cependant, pcre2grep Assure
qu'au moins 8K caractères ou le reste du fichier (selon le plus court)
sont disponibles pour la correspondance directe, et de même les caractères 8K précédents (ou
tous les caractères précédents, si moins de 8K) sont garantis disponibles
pour les affirmations de lookbehind. Les -M l'option ne fonctionne pas lorsque l'entrée est une ligne de lecture
par ligne (voir --line-buffered.)
-N type de nouvelle ligne, --nouvelle ligne=type de nouvelle ligne
La bibliothèque PCRE2 prend en charge cinq conventions différentes pour indiquer les fins de
lignes. Ce sont les séquences à un caractère CR (retour chariot) et LF
(linefeed), la séquence de deux caractères CRLF, une convention "anycrlf", qui
reconnaît l'un des trois types précédents, et une convention « toute », dans laquelle
toute séquence de fin de ligne Unicode est supposée terminer une ligne. Les séquences Unicode
sont les trois qui viennent d'être mentionnés, plus VT (onglet vertical, U+000B), FF (saut de page,
U+000C), NEL (ligne suivante, U+0085), LS (séparateur de ligne, U+2028) et PS (paragraphe
séparateur, U+2029).
Lorsque la bibliothèque PCRE2 est construite, une séquence de fin de ligne par défaut est spécifiée.
Il s'agit normalement de la séquence standard pour le système d'exploitation. Sauf si
autrement spécifié par cette option, pcre2grep utilise la valeur par défaut de la bibliothèque. Les
les valeurs possibles pour cette option sont CR, LF, CRLF, ANYCRLF ou ANY. Cela fait
possible d'utiliser pcre2grep pour analyser des fichiers provenant d'autres environnements
sans avoir à modifier leurs fins de ligne. Si les données analysées
n'est pas d'accord avec la convention fixée par cette option, pcre2grep peut se comporter dans
manières étranges. Notez que cette option ne s'applique pas aux fichiers spécifiés par le -f,
--exclure de, ou --include-de options, qui devraient utiliser le
séquence de saut de ligne standard du système d'exploitation.
-n, --numéro de ligne
Faites précéder chaque ligne de sortie de son numéro de ligne dans le fichier, suivi de deux points pour
lignes correspondantes ou un trait d'union pour les lignes de contexte. Si le nom du fichier est également
sortie, il précède le numéro de ligne. Quand le -M l'option provoque l'apparition d'un motif
correspond à plus d'une ligne, seule la première est précédée de son numéro de ligne. Cette
l'option est forcée si --décalages de ligne est utilisé.
--pas de jit Si la bibliothèque PCRE2 est construite avec la prise en charge de la compilation juste-à-temps (qui
accélère la correspondance), pcre2grep en fait automatiquement usage, à moins qu'il n'ait été
explicitement désactivé au moment de la construction. Cette option peut être utilisée pour désactiver l'utilisation de
JIT au moment de l'exécution. Il est fourni pour tester et résoudre les problèmes. Ce
ne devrait jamais être nécessaire en utilisation normale.
-o, --seulement-correspondance
Afficher uniquement la partie de la ligne qui correspond à un motif au lieu de la ligne entière.
Dans ce mode, aucun contexte n'est affiché. C'est le -A, -B et -C les options sont
ignoré. S'il y a plus d'une correspondance dans une ligne, chacune d'elles est affichée
séparément. Si -o est combiné avec -v (inversez le sens de la correspondance pour trouver
lignes non correspondantes), aucune sortie n'est générée, mais le code de retour est défini
de manière appropriée. Si la partie correspondante de la ligne est vide, rien n'est affiché
sauf si le nom du fichier ou le numéro de ligne sont en cours d'impression, auquel cas ils sont
affiché sur une ligne par ailleurs vide. Cette option est mutuellement exclusive avec --déposer-
compensations et --décalages de ligne.
-onombre, --seulement-correspondance=nombre
Afficher uniquement la partie de la ligne qui correspond aux parenthèses de capture du
numéro donné. Jusqu'à 32 parenthèses de capture sont prises en charge et -o0 est
équivalente à -o sans numéro. Parce que ces options peuvent être données sans
argument (voir ci-dessus), si un argument est présent, il doit être donné dans le même
élément shell, par exemple, -o3 ou --only-matching=2. Les commentaires donnés pour le
cas de non-argument ci-dessus s'appliquent également à ce cas. Si la capture spécifiée
les parenthèses n'existent pas dans le modèle, ou n'ont pas été définies dans la correspondance, rien
est affiché à moins que le nom de fichier ou le numéro de ligne ne soient affichés.
Si cette option est donnée plusieurs fois, plusieurs sous-chaînes sont sorties, dans le
ordre les options sont données. Par exemple, -o3 -o1 -o3 provoque les sous-chaînes
apparié en capturant les parenthèses 3 et 1 puis 3 à nouveau pour être sorti. Par
par défaut, il n'y a pas de séparateur (mais voir l'option suivante).
--om-séparateur=texte
Spécifiez une chaîne de séparation pour plusieurs occurrences de -o. La valeur par défaut est un
chaîne vide. Les cordes de séparation ne sont jamais colorées.
-q, --silencieux
Travaillez tranquillement, c'est-à-dire n'affichez rien d'autre que des messages d'erreur. Le statut de sortie
indique si des correspondances ont été trouvées ou non.
-r, --recursive
Si un chemin donné est un répertoire, analysez récursivement les fichiers qu'il contient, en prenant
note de tout --comprendre et --exclure Les paramètres. Par défaut, un répertoire est lu comme
un fichier normal ; dans certains systèmes d'exploitation, cela donne une fin de fichier immédiate.
Cette option est un raccourci pour définir le -d possibilité de "récurser".
--récursion-limite=nombre
See --match-limite au dessus.
-s, --pas de messages
Supprimez les messages d'erreur concernant les fichiers inexistants ou illisibles. De tels fichiers sont
tranquillement sauté. Cependant, le code de retour est toujours 2, même si des correspondances ont été trouvées
dans d'autres fichiers.
-u, --utf-8
Fonctionne en mode UTF-8. Cette option n'est disponible que si PCRE2 a été compilé
avec prise en charge UTF-8. Tous les modèles (y compris ceux pour tout --exclure et
--comprendre options) et toutes les lignes d'objet analysées doivent être des chaînes valides
de caractères UTF-8.
-V, --version
Écrivez les numéros de version de pcre2grep et la librairie PCRE2 au standard
sortie puis sortie. Tout le reste sur la ligne de commande est ignoré.
-v, --inverser la correspondance
Inversez le sens de la correspondance, de sorte que les lignes qui ne pas correspondre à l'un des
les modèles sont ceux qui sont trouvés.
-w, --mot-regex, --mot-expression régulière
Forcez les modèles à ne faire correspondre que des mots entiers. Cela équivaut à avoir \b à
le début et la fin du motif. Cette option s'applique uniquement aux modèles qui
sont comparés au contenu des fichiers ; il ne s'applique pas aux modèles
spécifié par l'un des --comprendre or --exclure options.
-x, --line-regex, --line-expression régulière
Forcer les motifs à être ancrés (chacun doit commencer à correspondre au début de
une ligne) et en outre, les obliger à correspondre à des lignes entières. C'est équivalent
avoir des caractères ^ et $ au début et à la fin de chaque niveau supérieur alternatif
branche dans chaque modèle. Cette option s'applique uniquement aux modèles qui sont
comparé au contenu des fichiers ; il ne s'applique pas aux modèles spécifiés
par l'un des --comprendre or --exclure options.
ENVIRONNEMENT VARIABLES
Les variables d'environnement LC_TOUS et LC_CTYPE sont examinés, dans cet ordre, pour un paramètre régional.
Le premier défini est utilisé. Ceci peut être annulé par le --lieu option. Sinon
locale est définie, la valeur par défaut de la bibliothèque PCRE2 (généralement la locale "C") est utilisée.
NOUVELLES LIGNES
Le -N (--nouvelle ligne) l'option permet pcre2grep pour analyser les fichiers avec une nouvelle ligne différente
conventions par défaut. Toutes les parties des fichiers d'entrée qui sont écrites dans le
les sorties standard sont copiées à l'identique, avec toutes les séquences de saut de ligne qu'elles ont dans le
saisir. Cependant, le paramétrage de cette option n'affecte pas l'interprétation des fichiers
spécifié par le -f, --exclure de, ou --include-de options, qui sont supposées utiliser
la séquence de saut de ligne standard du système d'exploitation, ni n'affecte la façon dont
pcre2grep écrit des messages d'information dans les flux d'erreur standard et de sortie. Pour
ceux-ci, il utilise la chaîne "\n" pour indiquer les nouvelles lignes, en s'appuyant sur la bibliothèque CI/O pour
convertissez-le en une séquence appropriée.
OPTIONS COMPATIBILITÉ
La plupart des formes courtes et longues de pcre2greples options de sont les mêmes que dans GNU grep
programme. Toute option longue de la forme --xxx-expression régulière (terminologie GNU) est également disponible en tant que
--xxx-regex (Terminologie PCRE2). Cependant, le --liste-de-fichiers, --file-offsets, --include-dir,
--décalages de ligne, --lieu, --match-limite, -M, --multiligne, -N, --nouvelle ligne, --om-séparateur,
--récursion-limite, -u et --utf-8 les options sont spécifiques à pcre2grep, tout comme l'utilisation du
--seulement-correspondance option avec un nombre de parenthèses de capture.
Bien que la plupart des options courantes fonctionnent de la même manière, quelques-unes sont différentes dans pcre2grep.
Par exemple, la --comprendre l'argument de l'option est un glob pour GNU grep, mais un habitué
expression pour pcre2grep. Si à la fois le -c et -l les options sont données, les listes grep GNU uniquement
noms de fichiers, sans décompte, mais pcre2grep donne aussi les comptes.
OPTIONS avec DONNEES
Il existe quatre manières différentes de spécifier une option avec des données. Si un court
est utilisée, les données peuvent suivre immédiatement ou (à une exception près) dans la suivante
élément de ligne de commande. Par exemple:
-f/un/fichier
-f /un/fichier
L'exception est la -o option, qui peut apparaître avec ou sans données. À cause de ce,
si des données sont présentes, elles doivent suivre immédiatement dans le même élément, par exemple -o3.
Si une option de forme longue est utilisée, les données peuvent apparaître dans le même élément de ligne de commande,
séparés par un caractère égal, ou (à deux exceptions près) il peut apparaître dans le prochain
élément de ligne de commande. Par exemple:
--file=/un/fichier
--file /un/fichier
Notez cependant que si vous souhaitez fournir un nom de fichier commençant par ~ en tant que données dans un shell
commande et que le shell développe ~ dans un répertoire personnel, vous devez séparer le nom du fichier
à partir de l'option, car le shell ne traite pas ~ spécialement à moins que ce ne soit au début de
un élément.
Les exceptions à ce qui précède sont les --Couleur (ou --Couleur) et --seulement-correspondance options, pour
dont les données sont facultatives. Si l'une de ces options contient des données, elles doivent être fournies dans
la première forme, en utilisant un caractère égal. Autrement pcre2grep supposera qu'il n'a pas
revendre.
CORRESPONDANT À LES ERREURS
Il est possible de fournir une expression régulière qui prend beaucoup de temps pour ne pas correspondre
certaines lignes. De tels modèles impliquent normalement des répétitions indéfinies imbriquées, par exemple :
(a+)*\d lorsqu'il est comparé à une ligne de a sans chiffre final. La correspondance PCRE2
fonction a une limite de ressources qui la fait abandonner dans ces circonstances. Si ce
arrive, pcre2grep affiche un message d'erreur et la ligne qui a causé le problème au
flux d'erreur standard. S'il y a plus de 20 erreurs de ce type, pcre2grep abandonne.
Le --match-limite option de pcre2grep peut être utilisé pour définir la limite globale des ressources ; là
est une deuxième option appelée --récursion-limite qui fixe une limite sur la quantité de mémoire
(généralement stack) qui est utilisé (voir la discussion de ces options ci-dessus).
DIAGNOSTIC
L'état de sortie est 0 si des correspondances ont été trouvées, 1 si aucune correspondance n'a été trouvée et 2 pour la syntaxe
erreurs, lignes trop longues, fichiers inexistants ou inaccessibles (même si des correspondances ont été trouvées dans
d'autres fichiers) ou trop d'erreurs de correspondance. En utilisant le -s option pour supprimer les messages d'erreur
sur les fichiers inaccessibles n'affecte pas le code de retour.
Utilisez pcre2grep en ligne à l'aide des services onworks.net