0

私は文字列を持っています:

xy-uv>ab-cd-ed-ef-gh<

私はそれを次のように変換する必要があります:

xy-uv>ab cd ef gh<

基本的に、と の-間のすべての文字で をスペースに置き換える必要があります。><

を使用してこれを行うにはどうすればよいsedですか?

4

4 に答える 4

1

この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<
于 2013-09-18T07:14:22.743 に答える
0

これはうまくいくかもしれません(GNU sed):

sed -r ':a;s/(>[^<]*)-([^<]*<)/\1 \2/;ta' file
于 2013-09-18T09:45:59.600 に答える