sed
正規表現に対する非常に基本的なサポートのみがあります。
完全正規表現ライブラリ(編集:PCRE)が必要なときに使用される標準ツールは何ですか(たとえば、幅0の不正予測アサーション)。
答え1
完全正規表現ライブラリはいつ必要ですか(たとえば、ゼロの幅を持つ否定予測アサーション)。
LookaheadsはPerl正規表現に由来し、Perlはsed
Lookaheadsと正規表現の機能の多くを継承(コピー)する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でエンコードされている場合。