GNU grep 的 -P 选项在生产中使用安全吗?

GNU grep 的 -P 选项在生产中使用安全吗?

grepUbuntu 18.04 和 CentOS 8的手册页对-Pgrep 选项有这样的说法:

-P, --perl-regexp 将模式解释为与 Perl 兼容的正则表达式 (PCRE)。这是 实验性的 和 grep -P 可能会警告 未实现的功能。

我强调了“实验性”和“可能警告”。实验意味着它不适合生产。 “可能警告”意味着您可能会遇到未实现的功能,并且grep可能无法向您发出警告。

在旧版本中grep,我什至看到了“高度实验性”一词,而不仅仅是“实验性”。

-PGNU 选项grep在生产中使用安全吗?我的一些引导脚本需要某些 perl 功能,因此当尚未安装/包含 perl 时,此选项对我非常有用。

答案1

这个问题可能是一个品味问题。

就我个人而言,我会尝试看看是否可以重写正则表达式,因此它只使用 POSIX。如果那不可能,我会使用:

| perl -ne '/.../ and print' |

反而。这样我就确定它是受支持的,并且很清楚如果perl不安装的话错误是什么。

将 -P 用于个人脚本(即非生产)。

唯一一次我这么想可能在生产中使用的合理性是,如果您的脚本进行了支持 -P 的测试,如果不支持则引发明显的错误。

相关内容