sed:文字間にのみスペースを追加してください

sed:文字間にのみスペースを追加してください

数字または他の文字の間ではなく、文字間にのみスペースを挿入しようとしています。

hello woRLd 12ab34しなければならないh e l l o w o R L d 12a b34

sed 's/\([a-zA-Z]\)\([a-zA-Z]\)/\1 \2/g' file.txt

明らかにするh el lo w or LD 12a b34

次の文字も文字であることを確認しないため、各文字の後にスペースを挿入することはできません。

コマンドを2回実行するとsed問題は解決しますが、エレガントではありません。可能であれば、この問題を解決するために使用する必要がありますsed

ベストアンサー1

ループ+条件付き分岐を使用して実行できます。

$ echo "hello woRLd 12ab34" | sed '
:a
s/\([a-zA-Z]\)\([a-zA-Z]\)/\1 \2/
ta
'
h e l l o w o R L d 12a b34

またはよりコンパクト

$ echo "hello woRLd 12ab34" | sed -e :a -e 's/\([a-zA-Z]\)\([a-zA-Z]\)/\1 \2/' -e ta
h e l l o w o R L d 12a b34

おすすめ記事