複雑な正規表現の置換[閉じる]

複雑な正規表現の置換[閉じる]

sed正規表現に対する非常に基本的なサポートのみがあります。

完全正規表現ライブラリ(編集:PCRE)が必要なときに使用される標準ツールは何ですか(たとえば、幅0の不正予測アサーション)。

答え1

完全正規表現ライブラリはいつ必要ですか(たとえば、ゼロの幅を持つ否定予測アサーション)。

LookaheadsはPerl正規表現に由来し、PerlはsedLookaheadsと正規表現の機能の多くを継承(コピー)するawkので、おそらくそれを使用したいと思います。

たとえば、foo従わないそれぞれを次のようbarに置き換えますxxx

perl -pe 's/foo(?!bar)/xxx/g' 

この-pフラグは、sed入力行に対して与えられたコードを実行し、結果を印刷する同様の動作を提供します。

インターネットにはPerl入門チュートリアルがたくさんあります。

答え2

インストールした場合は、perl次のように使用できます。

perl -pe "s/(?<=SomeTextBefore)ReplaceMe(?=SomeTextAfter)/NewText/g"

ファイルを変更するには、次のものを使用できます。

cat source.txt | perl -pe "s/(?<=SomeTextBefore)ReplaceMe(?=SomeTextAfter)/NewText/g" > dest.txt

次へ追加-CSオプションファイルがUTF8でエンコードされている場合。

関連情報