7

私はLinuxenvを使用していて、最近solarisに移行しました。残念ながら、私のbashスクリプトの1つではgrepPスイッチ[pcre support]を使用する必要があります。Solarisはgrepのオプションをサポートしていないため、問題の別の解決策を見つける必要があります。明らかな pcreループバグがあるようで、オプションはサポートされていません。 !ソラリスの問題を使用するか、解決することを願っています。pcregrepsed -rperlnawk

私はまだperlスクリプトで使用しておらず、その構文もフラグも認識していません。

ですのでpcreperlスクリプターがほんの数分で私を助けてくれると信じています。それらは複数の行で一致する必要があります。

awk 効率の観点から、または解決策のどちらがより良い解決perl策でしょうか?

返信ありがとうございます。

4

2 に答える 2

5

これらはあなたが必要とするかもしれない変換へgrepのいくつかです:perl

grep -P PATTERN FILE(s) ---> perl -nle 'print if m/PATTERN/' FILE(s)

grep -Po PATTERN FILE(s) ---> perl -nle 'print "$1\n" while m/(PATTERN)/g' FILE(s)

それが問題外の場合、あなたが探しているものについての私の推測ですgrep -P

于 2012-08-02T13:17:54.623 に答える
2

ここに短いものがあります:

 grep -P /regex/ ====> perl -ne 'print if /regex/;'
  • -n、ファイルの各行を入力として受け取ります。各行は$_、ファイル全体をループするPerlと呼ばれる特別なperl変数に入れられます。
  • -e、Perlプログラムがファイルを渡すのではなく、コマンドライン上にあると言います。
  • Perlprintコマンドは、$_他に何も印刷するように指定しない場合、何が入っているかを自動的に印刷します。
  • は、変数内のファイルのif /regex/どの行に対しても正規表現を照合します。$_
于 2012-08-03T20:59:24.857 に答える