En lisant cette question , j'ai découvert que GNU grep
a une -X
option qui attend un argument. Étrangement, il n'est mentionné ni dans la page de manuel ni dans la page d'informations.
En regardant le code source, il y a ce commentaire juste au milieu de la --help
sortie :
/* -X is deliberately undocumented. */
Au -delà, il semble que l' -X matcher
option de règle le moteur utilisé pour l'expression régulière , matcher
étant l' un des grep
, egrep
, fgrep
, awk
, gawk
, posixawk
et perl
(de la version 2.25).
Certaines de ces valeurs sont strictement identiques aux options existantes ( à savoir grep -G
, grep -E
, grep -F
et grep -P
). D'autre part, les trois awk
variantes n'ont pas d'options correspondantes.
Est-ce que quelqu'un sait quel est le but réel de cette option, en particulier avec l'un des awk
moteurs de regexp? Est-ce que quelqu'un peut me dire pourquoi c'est délibérément non documenté?
-E
concerne GNU sed, qui offre une compatibilité avec BSD sed. (J'espère-E
être documenté si POSIX l'adopte formellement et le supprime s'il ne le fait pas.)-X
était délibérément non documenté. (Son adresse e-mail est dans le journal des modifications si vous voulez le lui demander.)Réponses:
Son but est de fournir un accès aux différents matchers mis en œuvre dans GNU
grep
sous une forme ou une autre, en particulier matchers awk qui ne sont pas disponibles autrement, probablement à des fins d' essai (voir bogue 16481 qui porte sur l' ajout de lagawk
etposixawk
matchers).Cependant, il est actuellement bogué, ce qui explique pourquoi il est documenté comme étant non documenté :
Un suivi a demandé que le commentaire soit ajouté et a fourni un peu plus de fond sur l'
-X
option:ce que Stepan a fait peu de temps après .
la source
-X
, probablement comme un effet secondaire de la réécriture DFA, mais le journal des modifications manque de détails.