Al leer esta pregunta , descubrí que GNU grep
tiene una -X
opción que espera un argumento. Curiosamente, no se menciona ni en la página del manual ni en la página de información.
Mirando el código fuente, hay ese comentario justo en el medio de la --help
salida :
/* -X is deliberately undocumented. */
Mirando más, parece que la -X matcher
opción fija el motor utilizado para la expresión regular , matcher
siendo uno de grep
, egrep
, fgrep
, awk
, gawk
, posixawk
y perl
(en la versión 2.25).
Algunos de esos valores son estrictamente idénticas a las opciones existentes (es decir grep -G
, grep -E
, grep -F
y grep -P
). Por otro lado, las tres awk
variantes no tienen opciones correspondientes.
¿Alguien sabe cuál es el propósito real de esta opción, especialmente con uno de los awk
motores regexp? ¿Alguien puede decirme por qué no está documentado a propósito?
-E
para GNU sed que proporciona compatibilidad con BSD sed. (Espero-E
documentarme si POSIX lo adopta formalmente y lo elimina si no lo hace.)-X
está deliberadamente indocumentado. (Su dirección de correo electrónico está en el registro de cambios si desea preguntarle).Respuestas:
Su propósito es proporcionar acceso a los diversos matchers implementados en GNU
grep
de una forma u otra, en particular los matchers AWK que no están disponibles de otra manera, probablemente para propósitos de prueba (vea el error 16481 que trata sobre agregar los matchersgawk
yposixawk
).Sin embargo, actualmente tiene errores, razón por la cual está documentado como indocumentado :
Un seguimiento solicitó que se agregara el comentario y proporcionó un poco más de información sobre la
-X
opción:lo que Stepan hizo poco después .
fuente
-X
, probablemente como un efecto secundario de la reescritura de DFA, pero el registro de cambios es corto en detalles.