?
является особенным (используется как в glob, так и в раскрытии истории, см. zshexpn (1)
), поэтому требует экранирование, но в противном случае может использоваться как псевдоним, хотя, вероятно, не следует использовать его, учитывая, что он особенный.
% alias \?='echo hi'
% ?
hi
Это - желаемое поведение GNU grep версии 2.24 (выпущено 10 марта 2016 г.) и выше, и это исправление ошибки, появившейся в GNU grep 2.5.
if (*p == '$' || (*p == '^' && !after_unescaped_left_bracket))
die (EXIT_TROUBLE, 0,
_("unescaped ^ or $ not supported with -Pz"));
Это изменение было внесено 21 февраля 2016 г., см. этот отчет об ошибке для получения дополнительных сведений об этом изменении.
Хотя это выбор GNU grep, это ошибка, поскольку GNU grep компилирует регулярное выражение PCRE с PCRE_MULTILINE
, установленным , а также вернулся к вызову pcre_exec для более чем одной записи. в то время , что является источником проблемы, как указано Стефаном Шазеласом