私はそれを動作させることができないようです。 GNU sed文書はパイプを脱出するように言いますが、それはうまくいきません。かっこを追加しても違いはありません。
$ echo 'cat
dog
pear
banana
cat
dog' | sed 's/cat|dog/Bear/g'
cat
dog
pear
banana
cat
dog
$ echo 'cat
dog
pear
banana
cat
dog' | sed 's/cat\|dog/Bear/g'
cat
dog
pear
banana
cat
dog
ベストアンサー1
基本的にsed
使用POSIX基本正規表現|
、シフト演算子は含まれません。これを使用するように切り替えることができます。拡張正規表現、これには(またはいくつかの実装のいくつかの以前のバージョンで)|
シフトすることが含まれます。あなたはそれを使用することができます:-E
-r
echo 'cat dog pear banana cat dog' | sed -E -e 's/cat|dog/Bear/g'
そして互換性のあるシステムで実行されます。 (-e
オプションでsedスクリプト自体を表示します。省略することができ、特定の種類のエラーのみを防ぐだけです。)
非常に古いsed
sに移植するのは複雑ですが、次のことも可能です。に切り替えるawk
必要に応じてどこでもEREを使用してください。