Читая этот вопрос , я обнаружил, что в GNU grep
есть -X
опция, которая ожидает аргумент. Как ни странно, это не упоминается ни на странице руководства, ни на странице информации.
Глядя на исходный код, этот комментарий находится прямо в середине --help
вывода :
/* -X is deliberately undocumented. */
Глядя дальше, кажется , что -X matcher
опция устанавливает двигатель , используемый для регулярного выражения , matcher
будучи одним из grep
, egrep
, fgrep
, awk
, gawk
, posixawk
и perl
(в версии 2.25).
Некоторые из этих значений строго идентичны существующих вариантов (а именно grep -G
, grep -E
, grep -F
и grep -P
). С другой стороны, три awk
варианта не имеют соответствующих опций.
Кто-нибудь знает, какова реальная цель этой опции, особенно с одним из awk
двигателей регулярных выражений? Может кто-нибудь сказать мне, почему это намеренно не задокументировано?
-E
для GNU sed, которая обеспечивает совместимость с BSD sed. (Я ожидаю,-E
что документально подтвердится, если POSIX официально примет его и удалит, если он этого не сделает.)-X
, намеренно не имея документов. (Его адрес электронной почты находится в списке изменений, если вы хотите спросить его.)Ответы:
Его цель состоит в том, чтобы обеспечить доступ к различным matchers , реализованных в GNU
grep
в той или иной форме, в частности , AWK matchers , которые не доступны в противном случае, вероятно , для целей тестирования (см ошибка 16481 , которая обсуждает добавивgawk
иposixawk
matchers).Однако в настоящее время он содержит ошибки, поэтому он задокументирован как недокументированный :
Последующие попросили комментарий будет добавлен, и при условии , немного больше фона на
-X
опции:что Степан сделал вскоре после этого .
источник
-X
, вероятно, как побочный эффект переписывания DFA, но в списке изменений не хватает деталей.