![最初の文字の後にスペースを追加[閉じる]](https://linux33.com/image/96815/%E6%9C%80%E5%88%9D%E3%81%AE%E6%96%87%E5%AD%97%E3%81%AE%E5%BE%8C%E3%81%AB%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E8%BF%BD%E5%8A%A0%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
私はこのような文字列を持っています
8prob566459
希望の出力:
8 prob566459
答え1
ファイルのすべての行に適用する必要がある場合:
sed 's/./& /' < file
シェル変数に格納された文字列に適用するには:
string=8prob566459
printf '%s\n' "${string%"${string#?}"} ${string#?}"
次のようにすることもできます。
printf '%s\n' "$string" | sed '1s/./& /'
または以下を使用してzsh
:
printf '%s\n' "$string[1] $string[2,-1]"
または:
setopt extendedglob # best in ~/.zshrc
printf '%s\n' ${string/(#m)?/$MATCH }
または以下を使用してksh93
:
printf '%s\n' "${string/?/\0 }"
またはzsh
、ksh93
またはbash
:
printf '%s\n' "${string:0:1} ${string:1}"
答え2
echo "$(echo 8prob566459 | cut -c 1 ) $(echo 8prob566459 | cut -c 2- )"
これがうまくいくでしょう。