bashopenoffice.org

Add space between every letter


How can I add spaces between every character or symbol within a UTF-8 document? E.g. 123hello! becomes 1 2 3 h e l l o !.


Solution

  • sed(1) can do this:

    $ sed -e 's/\(.\)/\1 /g' < /etc/passwd
    r o o t : x : 0 : 0 : r o o t : / r o o t : / b i n / b a s h 
    d a e m o n : x : 1 : 1 : d a e m o n : / u s r / s b i n : / b i n / s h 
    

    It works well on e.g. UTF-8 encoded Japanese content:

    $ file japanese 
    japanese: UTF-8 Unicode text
    $ sed -e 's/\(.\)/\1 /g' < japanese 
    E X I F 中 の 画 像 回 転 情 報 対 応 に よ り 、 一 部 画 像 ( 特 に 『 
    $