Sed: ピリオドを無視

Sed: ピリオドを無視

ピリオドを一致させることができることはわかっていますが、\.試行錯誤ではまだピリオド文字を無視するパターンを取得できないようです。

私は次のようなさまざまなバリエーションを試しました。

\[^.] \[^.]+

このコードが欲しい

foo("some text").arg("more text");

同じままですが、コードは次のようになります。

foo("some text");

パターンを一致させ、他のものと交換してください。

そしてもう一つの問題に遭遇しました。

ケース例:

tr("I am some text") .arg(i do stuff) .arg(I also do stuff) 2〜n行を処理する必要があります。

現時点では、trが削除され、構文エラーが発生するため、これらのテキストを維持したいと思います。

ベストアンサー1

「非ピリオド」になるには、順序が[^.]欲しいものです。あなたの例では\前に1つありますが、[これは間違っています。

たとえば、次のようになります。

foo("some text").arg("more text");
foo("some text");

% sed 's/foo("some text")[^.]/replaced text/' tstfile
foo("some text").arg("more text");
replaced text

これは次の文字も置き換えますfoo(..)。それを維持したい場合は、私たちはそれを覚えています:

% sed 's/foo("some text")\([^.]\)/replaced text\1/' tstfile
foo("some text").arg("more text");
replaced text;

おすすめ記事