sedを使用してさまざまな数値シーケンスをそのまま維持しながら、文字列の文字を置き換える

sedを使用してさまざまな数値シーケンスをそのまま維持しながら、文字列の文字を置き換える

次の文字と数字を含む文字列があります。

one0.1231two,

変えたい一つそして二つ新しい文字順で

three0.1231four,

その間の数字は変更されずに保持されます。しかし、2つの部分文字列一つそして二つ常に同じままですが、それらの間の数値シーケンスの長さは変わります。

one0.000230002two, one1293.02two, or one42two 

起こることがあります。これまでは、sedと正規表現を使用して固定ビット数でのみ置き換えることができました。

次の状況のみが発生します一つそして二つ上記のように周囲の数字を交換する必要があります。他のすべてのイベントは変更されていないままにしてください。

ベストアンサー1

次のことができます。

sed 's/one\([[:digit:].]*\)two/three\1four/g'

これ\(...\) 捕獲\1(ここでは0個以上の10進数またはピリオドシーケンス)内で一致するため、代替項目で参照できます。

おすすめ記事