数字または他の文字の間ではなく、文字間にのみスペースを挿入しようとしています。
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