1つの表現で複数の針を見つけて置き換える方法は?

1つの表現で複数の針を見つけて置き換える方法は?

テキストファイルがあるとしましょう。

foo fnord bar
bizz foo poit

今、「foo」と「bar」の両方を「narf」に変更したいと思います。

以下が利用可能であることを知っています。

 sed -e 's/foo/narf/g' -e 's/bar/narf/g' fileName

しかし、OR演算子を使用して、正規表現に2つの針を1つの式と一致させるようにしたいと思います。

いくつかのマニュアルを見て、配管が私のニーズに適していると思いましたが、試してみました。

sed -e 's/foo|bar/narf/g' -i fileName

動作せず、エラーも発生しません。

私がここで何を間違っているのか?

ベストアンサー1

-r拡張正規表現構文を使用するオプション:

sed -r -e 's/foo|bar/narf/g'

それ以外の場合は、次のように分離を脱出します\|

sed -e 's/foo\|bar/narf/g'

おすすめ記事