sedのグループ一致

sedのグループ一致

concat(x,y)sedグループとキャプチャグループを使用して、プログラムで文字列を文字列に置き換えようとします。ここでは、任意の数字を表します。xyxy

私はこのトリックを行うと思います。

echo "concat(3,2)" | sed 's!concat(\(\d\),\(\d\))!"\1\2"!'

私は基本的にセットのすべての数字をキャプチャし、両方のセットを並べて出力したいと思います。このコマンドの結果を理解できません。

concat(3,2)

私のsedコマンドがうまくいかないのはなぜですか?これがどれほど関連性があるかはわかりませんが、私はMacを使用しています。

ありがとうございます!

答え1

デフォルトでsedはデフォルトの正規表現のみが理解されるため、[0-9]代わりに次のものを使用する必要があります\d

$ echo "concat(3,2)" | sed 's!concat(\([0-9]\),\([0-9]\))!"\1\2"!'
"32"

関連情報