このsedコマンドがパターンをキャプチャできないのはなぜですか?

このsedコマンドがパターンをキャプチャできないのはなぜですか?

sed文字列の周りに括弧のペアを配置するためにonelinerを使用したいと思います。

私が試したことは次のとおりです。

echo 1 | sed -e 's/.*/(\0)/'

文字が1パターンと一致するようにしたいと思います.*

しかし、出力はただ

(0)

実際、次のような結果を得たいと思います。

(1)

sedOSXでBSDを使用しています

ベストアンサー1

&完全なパターンマッチングを置き換える標準的な方法です。いくつかのsed実装(GNUやbusyboxなど)はそれを\0代替としてサポートしていますが、これは標準でも移植可能でもありません。

$ echo 1 | sed -e 's/.*/(&)/'
(1)

コマンドに最初の(空になる可能性がある)シーケンスが含まれています。数値、一行に括弧内にできるだけ多く入力してください。これには、有効な文字を形成しないバイトを含む行の完全な行が含まれない場合があります。この場合、以下を見つけることができます。

sed 's/^/(/; s/$/)/'

より安定して動作し、完全に密閉されています。ワイヤーかっこ内。

おすすめ記事