繰り返される文字の間に文字を挿入します。

繰り返される文字の間に文字を挿入します。

文字列が与えられたら、カンマの前に文字がなく、文字がない各コンマの間に最初に強制的に適用したいと,,a,,,b,,,,思います。-結果は次のとおりです-,-,a,-,-,b,-,-,-,-

echo ",,a,,,b,,,," | sed 's/,/,-/g' | sed 's/-\([^,]\)/\1/g' | sed 's/^,/-&/g'

次に続く:-,-,a,-,-,b,-,-,-,-

しかし、問題は、sedを3回呼び出すことが非常に非効率的であるということです。非常に長い反復sedでこれを行う方法はありますか?正規表現、または他のツール一度電話してください

ベストアンサー1

(echo ,,a,,,b,,,,; echo a,,b) | perl -pe 's/(^|,)\K(?=(,|$))/-/g' 
-,-,a,-,-,b,-,-,-,-
a,-,b

sed今年の一学期勉強しなければならないと思います。

おすすめ記事