引用するAUのQ&A。
grep
パラメータを使用したGNUの動作が変更され、行アンカーの開始と終了をサポート-Pz
しないのはなぜですか?^
$
これは間違いか正しい行動ですか?
Ubuntu 16.04でテストされており、カーネルバージョンは4.4.0-21-genericです。
$ echo ^ | grep -Pz ^
grep: unescaped ^ or $ not supported with -Pz
答え1
これはGNU grepバージョン2.24(2016年3月10日リリース)以降で予想される動作であり、GNU grep 2.5で導入されたバグに対する修正です。
if (*p == '$' || (*p == '^' && !after_unescaped_left_bracket))
die (EXIT_TROUBLE, 0,
_("unescaped ^ or $ not supported with -Pz"));
2016年2月21日に変更されました。このバグレポートこの変更の詳細は次のとおりです。
GNU grepオプションですが、GNU grepのためにバグです。PCRE_MULTILINE
PCRE正規表現をコンパイルするには、setを使用してください。とまた、複数のレコードを一度に処理するためにpcre_exec呼び出しに戻りました。、これが問題の源です。指摘したとおり渡すスティーブン・チャジェラス