私は文字列を持っています:
xy-uv>ab-cd-ed-ef-gh<
私はそれを次のように変換する必要があります:
xy-uv>ab cd ef gh<
基本的に、と の-
間のすべての文字で をスペースに置き換える必要があります。>
<
を使用してこれを行うにはどうすればよいsed
ですか?
このsed
スクリプトを試すことができます:
s/>([^>]+)</\n>\1<\n/g
:loop
s/(\n[>][^ ]+)-([a-z ]*[<]\n?)/\1 \2/g
t loop
s/\n//g
テスト:
sat:~# sed -r -f b.sed
xy-uv>ab-cd-ed-ef-gh<
xy-uv>ab cd ed ef gh<
これはうまくいくかもしれません(GNU sed):
sed -r ':a;s/(>[^<]*)-([^<]*<)/\1 \2/;ta' file