Ao ler esta pergunta , descobri que o GNU grep
tem uma -X
opção que espera um argumento. Estranhamente, isso não é mencionado na página de manual nem na página de informações.
Olhando para o código fonte, existe esse comentário no meio da --help
saída :
/* -X is deliberately undocumented. */
Olhando adiante, parece que a -X matcher
opção define o motor utilizado para a expressão regular , matcher
sendo um dos grep
, egrep
, fgrep
, awk
, gawk
, posixawk
e perl
(a partir da versão 2.25).
Alguns desses valores são rigorosamente idênticas às opções existentes (ou seja grep -G
, grep -E
, grep -F
e grep -P
). Por outro lado, as três awk
variantes não têm opções correspondentes.
Alguém sabe qual é o objetivo real dessa opção, especialmente com um dos awk
mecanismos regexp? Alguém pode me dizer por que não foi propositadamente documentado?
-E
para o GNU sed, que fornece compatibilidade com o BSD sed. (Espero-E
tornar-se documentada se POSIX formalmente adota-lo e removidos se isso não acontece.)-X
está deliberadamente indocumentado. (Seu endereço de email está no changelog se você quiser perguntar a ele.)Respostas:
Seu objetivo é fornecer acesso aos vários matchers implementados no GNU
grep
de uma forma ou de outra, em particular os matchers AWK que não estão disponíveis de outra forma, provavelmente para fins de teste (veja o bug 16481 que discute a adição degawk
eposixawk
matchers).No entanto, atualmente é de buggy, razão pela qual está documentado como não documentado :
Um acompanhamento solicitou que o comentário fosse adicionado e forneceu um pouco mais de fundo sobre a
-X
opção:o que Stepan fez logo depois .
fonte
-X
, provavelmente como efeito colateral da reescrita do DFA, mas o registro de alterações é curto em detalhes.