?次の文でallを/
onlyに置き換える方法は?.
=
たとえば、次のようになります。
/buttress_unit/buttress_top/buttress_i_ps_but_cio_m1_i_but_m1_tx_wrapper_m1_pref_fifo_array_29__stream_id_3_0 = buttress_unit/buttress_top/buttress/i_ps_but_cio_m1/
私はこれをしたい:
/buttress_unit/buttress_top/buttress_i_ps_but_cio_m1_i_but_m1_tx_wrapper_m1_pref_fifo_array_29__stream_id_3_0 = buttress_unit.buttress_top.buttress.i_ps_but_cio_m1.
答え1
あなたは試すことができます
sed ':label
s|\(=.*\)/|\1.|
t label
'
置換はで終わるすべての項目をs
見つけます。角かっこで囲まれたキャプチャは最後です。置換文字列を除き、キャプチャした内容をコピーして点を追加します。ただし、sedはすでに一致する文字を2回検索しないため、グローバルにこれを実行するためにaを追加することはできません。したがって、条件付きのループを追加します。=
/
/
g
行く(無限ループを避けるため)。前のコマンドで行が変更された場合にt
ラベルに移動することを示します。label