私は(Perl / Python互換正規表現)正規表現を好みます。
man grep
:
....しかし、PCREがシステム上にある場合にのみ機能します。
最も一般的なLinuxディストリビューションはこの機能をサポートしていますか?
私はfreebsd、Solarix、busyboxに興味がありません...
答え1
ポリメラーゼ連鎖反応ほぼどこにでも設置仕える人そしてデスクトップLinuxシステムですが、軽量システムや組み込みシステム(携帯電話、ルーター、テレビ、その他のシステム)で必ず実行できるわけではありません。モノのインターネット)、通常は標準ユーザースペースが非常に単純化されたバージョンを持っているためです(デフォルトでは忙しい箱ベースにはほぼ確実にPCREが不足しています。
Debian には 1 つあります人気コンテスト各種パッケージの設置指標を測定する機能です。 grep
(25番目の最も一般的な、176,000の設置)は、以下によって異なります。いいえオプション)libpcre3
(94番目に最も一般的な、174,000回設置)。その違いを説明することはできませんが、心配しません。
完全なLinuxディストリビューションを実行している最新のデスクトップとサーバーには、PCREをサポートするコンパイル済みバージョンがあると仮定するのは安全ですgrep
。
ただし、PCREの移植性を高めるには(1kインストールのビット9363)またはgrep -P
(180インストールのビット21728)に依存せず、(175kインストールのビット88)を使用してください。pcregrep
ack
perl
perl -ne 'print if /regexp/'
一部のサーバーでは、「セキュリティの目的」に意図的にPerl、Python、PHPが不足しています。つまり、多くの悪意のあるスクリプト(例:ルートキット)はこれに依存しているので実行できません。このような状況は非常にまれです(強力な悪意のあるPOSIXシェルスクリプトが多いため、少し愚かです)。
注2:Perlは遅い(Pythonのように) LibPCREは高速ですが、正規表現が単純なほどパフォーマンスが向上します。可能であれば、PCRE領域を探索する代わりにgrep
(BRE、基本正規表現)のみを使用するか、(ERE、拡張正規表現)を使用してみてください。grep -E
答え2
pcre
私が覚えている限り、私はCentOS、Ubuntu、RedHat、Debian、そしてそれに基づく他のディストリビューションなどの多くのLinuxディストリビューションを見ました。私はこれがあなたに何か問題を引き起こすとは思わない。次のソースも利用できます。