grep
Ubuntu 18.04 和 CentOS 8的手册页对-P
grep 选项有这样的说法:
-P, --perl-regexp 将模式解释为与 Perl 兼容的正则表达式 (PCRE)。这是 实验性的 和 grep -P 可能会警告 未实现的功能。
我强调了“实验性”和“可能警告”。实验意味着它不适合生产。 “可能警告”意味着您可能会遇到未实现的功能,并且grep
可能无法向您发出警告。
在旧版本中grep
,我什至看到了“高度实验性”一词,而不仅仅是“实验性”。
-P
GNU 选项grep
在生产中使用安全吗?我的一些引导脚本需要某些 perl 功能,因此当尚未安装/包含 perl 时,此选项对我非常有用。
答案1
这个问题可能是一个品味问题。
就我个人而言,我会尝试看看是否可以重写正则表达式,因此它只使用 POSIX。如果那不可能,我会使用:
| perl -ne '/.../ and print' |
反而。这样我就确定它是受支持的,并且很清楚如果perl
不安装的话错误是什么。
我做将 -P 用于个人脚本(即非生产)。
唯一一次我这么想可能在生产中使用的合理性是,如果您的脚本进行了支持 -P 的测试,如果不支持则引发明显的错误。